WordPress propose de nombreux hooks pour personnaliser le comportement du site, mais l’un des plus importants pour l’intégration de scripts et d’éléments au début du contenu est wp_body_open. Introduit depuis WordPress 5.2, ce hook s’exécute immédiatement après l’ouverture de la balise <body> et permet d’injecter du code HTML ou JavaScript avant le contenu principal.
1. Où se trouve wp_body_open dans un thème WordPress ?
Dans un thème conforme aux standards WordPress, wp_body_open est appelé dans header.php.
Exemple typique :
Le code attaché à wp_body_open s’exécute donc immédiatement après <body> et avant tout autre contenu.
2. Pourquoi utiliser wp_body_open ?
2.1 Différence avec wp_head
wp_head s’exécute dans la balise <head>. Il est utilisé pour :
- charger des CSS
- ajouter des meta tags
- charger des scripts dans l’en-tête
2.2 Différence avec wp_footer
wp_footer s’exécute juste avant la fermeture de </body>. Il est utilisé pour :
- ajouter des scripts
- injecter des balises noscript
- intégrer des outils d’analyse en fin de page
2.3 Pourquoi wp_body_open est unique
wp_body_open est le seul hook standard WordPress qui s’exécute **au tout début du body**, ce qui le rend indispensable pour :
- Google Tag Manager (code noscript)
- scripts de tracking qui doivent être exécutés au début
- bannières globales
- modifications DOM dès le chargement
3. Exemples concrets d’utilisation
Exemple 1 : Ajouter un message global
Ce message s’affiche en haut de toutes les pages.
Exemple 2 : Intégrer Google Tag Manager
Le code GTM noscript doit être placé juste après <body> :
Remplacez GTM-XXXX par votre identifiant.
Exemple 3 : Ajouter un script JavaScript léger
Ce script s’exécute immédiatement après l’ouverture du body.
Exemple 4 : Afficher une bannière conditionnelle
Exemple 5 : Ajouter une classe CSS via JavaScript
Exemple 6 : Précharger une image critique
Exemple 7 : Ajouter un script de chat en direct
Exemple 8 : Afficher une alerte pour les utilisateurs non connectés
4. Compatibilité : que faire si le thème ne supporte pas wp_body_open ?
Certains thèmes anciens n’incluent pas wp_body_open. Dans ce cas, les actions ne s’exécuteront pas.
4.1 Solution recommandée : ajouter wp_body_open() dans le thème
Dans header.php :
4.2 Solution alternative : fallback (moins recommandé)
Cette solution permet d’éviter des erreurs, mais elle ne remplace pas l’appel dans header.php.
5. Sécurité et bonnes pratiques
5.1 Éviter les injections XSS
Si vous affichez des données dynamiques :
5.2 Utiliser wp_enqueue_script pour les scripts lourds
Conclusion
Le hook wp_body_open est indispensable pour les intégrations modernes WordPress qui nécessitent du code juste après l’ouverture de la balise <body>. Il permet d’ajouter des scripts, des éléments HTML, des bannières, ou des intégrations tierces sans modifier le contenu principal du thème. Pour garantir la compatibilité, assurez-vous que votre thème appelle bien wp_body_open() dans header.php.












