Les hooks WordPress, l’art de s’incruster proprement dans le système
Si tu veux développer des plugins, personnaliser un thème ou simplement ajouter une petite fonctionnalité par-ci par-là, tu dois connaître les hooks WordPress. Ce sont eux qui te permettent d’ajouter ton propre code dans le cycle de vie de WordPress ou de modifier ce qui s’y passe.
Deux types de hooks sont à ta disposition :
- Les actions : pour exécuter du code à des moments précis.
- Les filtres : pour modifier des données avant qu’elles ne soient affichées ou utilisées.
Les actions : s’insérer dans le processus
Une action, c’est comme si WordPress t’invitait à t’exécuter à un moment précis de son fonctionnement. Il y a des centaines de “points d’accroche” prévus pour ça. Que tu veuilles ajouter du HTML dans le footer, envoyer un e-mail à la création d’un utilisateur ou exécuter un script juste avant que le site s’affiche, les actions te donnent un accès direct au système.
function selina_hello_world() {
echo '<p>Hello World !</p>';
}
add_action( 'wp_footer', 'selina_hello_world' );
Ici, la fonction selina_hello_world
est accrochée au hook wp_footer
. Quand WordPress arrive à ce point-là (juste avant de fermer le footer), il déclenche ton code. C’est simple et efficace.
Sous le capot : do_action
Chaque action existe parce que WordPress déclenche des points d’accroche dans son code avec do_action
. Par exemple, pour wp_footer
, le core WordPress contient ceci :
do_action( 'wp_footer' );
Ce do_action
exécute toutes les fonctions que tu as enregistrées avec add_action pour ce hook-là.
Les filtres : transformer les données
Les filtres, eux, fonctionnent différemment. Là où les actions exécutent du code, les filtres prennent une donnée, la modifient, puis renvoient le résultat. Ils sont parfaits pour manipuler des valeurs à la volée, sans changer le fonctionnement global.
Par exemple, si tu veux ajouter un petit texte à la fin de chaque article :
function selina_add_signature( $contenu ) {
return $contenu . '<p>Merci pour la lecture !</p>';
}
add_filter( 'the_content', 'selina_add_signature' );
Ici, le hook the_content passe le contenu de l’article à ta fonction. Tu modifies ce contenu, puis tu le renvoies. WordPress l’affiche ensuite tel quel.
Sous le capot : apply_filters
Les filtres existent grâce à apply_filters
dans le core. Par exemple, pour the_content, WordPress utilise :
echo apply_filters( 'the_content', $contenu );
Ton code, enregistré avec add_filter
, intercepte la variable $content
, la modifie, et retourne la version transformée.
Pourquoi les hooks sont indispensables ?
Sans les hooks, tu serais obligé de modifier directement le core de WordPress, ce qui est une hérésie (et une galère) puisque chaque mise à jour écraserait tes changements. Les hooks permettent d’injecter ton code proprement et d’interagir avec WordPress sans casser son fonctionnement interne.
Avec les actions, tu peux :
- Exécuter du code quand un utilisateur s’inscrit.
- Ajouter des styles ou scripts dans le
<head>
. - Enregistrer des logs à la création d’un article.
Avec les filtres, tu peux :
- Modifier un titre ou un contenu avant affichage.
- Personnaliser un e-mail de notification.
- Optimiser une requête SQL avant qu’elle ne soit exécutée.
En résumé
- Les actions te permettent d’exécuter du code à des moments précis grâce à add_action et do_action.
- Les filtres te donnent le contrôle pour modifier des données grâce à add_filter et apply_filters.
Sans eux, WordPress serait un système rigide. Grâce aux hooks, c’est une boîte à outils flexible qui te permet de créer, personnaliser et étendre son fonctionnement sans jamais toucher au core.
Commence petit. Accroche-toi à wp_footer
, joue avec the_content
, et observe ce qui se passe. Une fois que tu auras la main, les hooks deviendront ton réflexe pour tout tes projets WordPress.