多くの人が私のWebサイトのページをiframeとして自分のWebサイトに埋め込みます。私は彼らが私のフッター、ヘッダーとそれらのiframeの特定の区分をとらないようにしたいです。それ以来、フッター、ヘッダー、および言及された特定の区分は、私のすべてのページにあります。
私は何をすべきか?ヘッダまたはfunctions.php
ファイルにコードを追加する必要がありますか?
$_SERVER['HTTP_REFERER']
変数を検出して、ページが外部サーバーから要求されているかどうかを検出できます。もしそうなら、get_header()
とget_footer()
を使って代わりのヘッダーとフッターをロードするべきです。すべてのスクリプトとスタイルシートが確実に読み込まれるようにするには、これらの呼び出しが必要ですが、実際のヘッダー要素とフッター要素を構成している他のコンテンツは削除できます。
たとえば、現在のheader.php
をheader-iframe.php
に複製し、ヘッダーを次のように呼び出します。
get_header('iframe');
同じことがフッターにも言えます。 footer-iframe.php
という名前のファイルを作成し、それを使用して呼び出します。
get_footer('iframe');
header-iframe.php
に開始タグまでのすべてが含まれていることを確認してください。
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="Apple-mobile-web-app-capable" content="yes" />
<title><?php wp_title( '|', true, 'right' ); ?></title>
<?php wp_head(); ?>
</head>
<body <?php body_class('iframe'); ?>>
このように、あなたのfooter-iframe.php
はすべての余分なコンテンツを取り除かれるべきです:
<?php wp_footer(); ?>
</body>
</html>
上記のスニペットはほんの一例ですが、あなたはアイデアを得ます。 get_header('iframe');
およびget_footer('iframe);
関数の呼び出しは、$_SERVER['HTTP_REFERER']
変数に基づいて条件付きにする必要があります。これはpreg_match
または他のネイティブのPHP比較関数を使用して実行できます。
埋め込み用に 固有のテンプレート を作成しないのはなぜですか。カスタムテンプレートでは、get_header()
、get_footer()
、get_sidebar()
の呼び出しを削除するだけで済みます。