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
?
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.
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()
.