web-dev-qa-db-ja.com

Iframeのヘッダーとフッターを削除する

多くの人が私のWebサイトのページをiframeとして自分のWebサイトに埋め込みます。私は彼らが私のフッター、ヘッダーとそれらのiframeの特定の区分をとらないようにしたいです。それ以来、フッター、ヘッダー、および言及された特定の区分は、私のすべてのページにあります。

私は何をすべきか?ヘッダまたはfunctions.phpファイルにコードを追加する必要がありますか?

3
Lee Braham

$_SERVER['HTTP_REFERER']変数を検出して、ページが外部サーバーから要求されているかどうかを検出できます。もしそうなら、get_header()get_footer()を使って代わりのヘッダーとフッターをロードするべきです。すべてのスクリプトとスタイルシートが確実に読み込まれるようにするには、これらの呼び出しが必要ですが、実際のヘッダー要素とフッター要素を構成している他のコンテンツは削除できます。

たとえば、現在のheader.phpheader-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比較関数を使用して実行できます。

1
Jelle Wielsma

埋め込み用に 固有のテンプレート を作成しないのはなぜですか。カスタムテンプレートでは、get_header()get_footer()get_sidebar()の呼び出しを削除するだけで済みます。

0