web-dev-qa-db-ja.com

ページが埋め込まれているか確認する

私は、そのページがiFrameで埋め込まれているかどうかをチェックする条件を付けようとしていますが、私が知る限りの方法ではうまくいかないでしょう。私はWoocommerceの単一の製品ページに、必要なスクリプトとスタイルだけが読み込まれるカスタムテンプレートを埋め込んでいます(テンプレートは文字列クエリに応じて読み込まれます)。

問題は、特定のクエリ文字列が存在する場合にのみ「カートに追加」メッセージを変更したいということです。 if(isset($_GET['embed_act'])) {}は機能せず、get_permalink()は空の文字列を返します。

誰かがクエリ文字列の存在をチェックする方法を知っているか、少なくともページがiframeにロードされているかどうかを知っていますか?

1
Rafal

サーバーは、クライアントが出力に対して何をしているのかわからないため、想定できることに制限があります。あなたはリクエスト、リファラー、現在のURIとヘッダでパラメータを送信してもしなくてもかまいません。

  • $_REQUEST['embed_act']
  • $_SERVER['HTTP_REFERER']
  • $_SERVER['REQUEST_URI']
  • get_headers()

JS側では、 可能かもしれません

if(self==top)
{
    //...
}

if( parent==top )
{
    //...
}
2
jgraup