web-dev-qa-db-fra.com

Supprimer l'en-tête et le pied de page dans l'iframe

De nombreuses personnes intègrent les pages de mon site Web dans leurs sites Web sous forme d'iframes. Je veux qu'ils ne prennent pas mon pied de page, mon en-tête et une division spécifique dans ces iframes. Depuis, le pied de page, l'en-tête et la division spécifique mentionnée sont présents dans toutes mes pages.

Que devrais-je faire? Devrais-je ajouter du code dans mon en-tête ou dans mon fichier functions.php?

3
Lee Braham

Vous pouvez détecter la variable $_SERVER['HTTP_REFERER'] pour déterminer si la page est demandée à un serveur externe. Si c'est le cas, vous devriez alors charger un en-tête et un pied de page alternatifs en utilisant get_header() et get_footer(). Vous aurez besoin de ces appels pour vous assurer que tous les scripts et les feuilles de style sont chargés, mais vous pouvez supprimer les autres contenus qui constituent les éléments d'en-tête et de pied de page.

Par exemple, vous pouvez dupliquer votre header.php actuel en header-iframe.php et appeler l'en-tête avec:

get_header('iframe');

La même chose vaut pour le pied de page. Créez un fichier appelé footer-iframe.php et appelez-le en utilisant:

get_footer('iframe');

Assurez-vous simplement que votre header-iframe.php contient tout jusqu'à la balise d'ouverture, comme ceci:

<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'); ?>>

Votre footer-iframe.php devrait être débarrassé de tout contenu excessif, comme ceci:

<?php wp_footer(); ?>

</body>
</html>

Les extraits ci-dessus ne sont qu'un exemple, mais vous voyez l'idée. L'appel des fonctions get_header('iframe'); et get_footer('iframe); doit être conditionnel en fonction de la variable $_SERVER['HTTP_REFERER']. Cela pourrait être fait en utilisant preg_match ou toute autre fonction de comparaison native PHP.

1
Jelle Wielsma

Pourquoi ne créez-vous pas un modèle spécifique juste pour l'intégration? Dans votre modèle personnalisé, vous pouvez simplement supprimer les appels get_header(), get_footer() et get_sidebar().

0