Bien comprendre et utiliser les hooks WordPress
Les hooks (ou crochet, hameçon en français) est un mécanisme permettant d’effectuer une action supplémentaire à un instant donné prévu par le système.
Il existe deux types de hook dans WordPress :
Les actions
Tout au long du processus de construction d’une page, WordPress place des « hooks » permettant aux développeurs d’ajouter des fonctionnalités à une étape particulière. Ainsi il est facile d’enrichir le processus avec nos propres fonctions.
Exemple simple, l’action « save_post » permet de réaliser des actions supplémentaires lors de la sauvegarde d’un post (article, page ou autre). C’est par cet intermédiaire que l’on pourra sauvegarder nos méta informations (metaboxes).
Voici certaines des actions importantes :
Voyons comment facilement utiliser un hook pour ajouter le code Google Analytics dans le footer de votre thème.
Exemple avec wp_footer
Dans un fichier comme functions.php
par exemple, ajoutez :
add_action('wp_footer', 'add_google_analytics');
Puis créez la fonction add_google_analytics
:
function add_google_analytics() { $ga = get_option('google_analytics'); if(!empty($ga)) echo stripslashes($ga); }
Nous aurions très bien pu ajouter ce code directement dans le fichier footer.php
. Mais ici, le code est sorti du template, ce qui est plus lisible, maintenable et réutilisable.
Les filtres
Le principe des filtres est de modifier une donnée construite par WordPress avant de l’afficher.
Voici certains filtres utiles :
Le filtre the_content
va permettre de modifier le contenu d’un post avant de l’afficher. Très utile si vous avez des remplacements de chaînes à faire.
Voyons par exemple comment modifier le […] présent par défaut à la fin des extraits d’articles.
Exemple avec get_the_excerpt
add_filter('get_the_excerpt', 'new_excerpt_hellip');
La différence avec les actions, c’est le ou les paramètres passés à notre fonction qui vont nous permettre de modifier leur valeur avant de les afficher.
function new_excerpt_hellip($text) { return str_replace('[...]', '...', $text); }
Conclusion
Les hooks sont un très moyen de modifier le comportement de WordPress selon nos besoins afin soit d’y ajouter de nouvelles fonctionnalités au travers des actions ou simplement d’altérer certaines de ses méthodes via les filtres.
Il est donc vivement recommandé de les utiliser plutôt que d’intervenir directement dans les templates de fichier.
33 commentaires
Laisser une réponse

Bonjour,
Je débute en hooks 🙂
JE voudrai dans un multisite supprimer tous les mentions du créateur de thème ET.
je pense qu’il faut faire un filtre, mais je n’arrive pas à voir lequel pourrait être utilisé ? et la liste d’ailleurs ?
Bonne journée
Une autre alternative : le thème enfant?!
Merci, article bref et explicatif.
Bonjour et merci pour cet article.
Je cherche un moyen de customiser un plugin que j’ai installé mais je ne veux pas toucher directement le code de la personne qui a créé ce plugin (y a un minimum de respect à avoir pour son travail).
Je voudrais savoir s’il est possible que je fasse un plugin dont la seule fonction soit « hookée » sur une des fonctions du plugin déjà installé. Si oui, comment?
Bonjour M Voisin,
Je suis tombé sur votre article fort intéressant sur les hooks.
J’ai moi-même un souci avec eux…
J’ai la dernière version de WP ainsi que Contact form 7
J’ai mis un formulaire d’inscription avec CF car j’utilise un plugin d’affiliation.
Avant la mise à jour de WP, tout allait bien et maintenant l’action de CF7 ne se fait plus. La personne s’inscrit, l’inscription est enregistrée MAIS il n’y a ni message de confirmation qui apparait…
Avez-vous déjà rencontré ce genre de souci ?
J’ai tut essayé et je suis perdu. Je suis loin d’être un pro. Je bidouille comme on dit.
Merci de votre aide.
Voici le site en question : http://affinites-rencontres.com/
cordialement
nicolas
Very Thanks
Merci, article bref et explicatif .!
Avant la mise à jour de WP, tout allait bien et maintenant l’action de CF7 ne se fait plus. La personne s’inscrit, l’inscription est enregistrée MAIS il n’y a ni message de confirmation qui apparait…
bonjour,
j’utilise le thème enfant de strofront avec woocommerce.
j’essaie de passer des hooks wp et woocommerce mais rien ne se passe.
avez vous une idée de pourquoi cela ne fonctionne.
merci d’avance
re,
j’ai oublié de préciser que j’écris les hooks dans le fichier functions.php du thème enfant
j’ai oublié de préciser que j’écris les hooks dans le fichier functions.php du thème enfant
j’ai oublié de préciser que j’écris les hooks dans le fichier functions.php du thème enfant
دانلود اسکریپت
http://www.xi-tools.com/
افزونه وردپرس
Bonjour, je voudrais ajouter une banniere de 15px de haut à mon site sur wordpress. Je suppose qu’on peut le faire avec les filtres ou les hooks.?
Merci pour ce tuto.
http://upt2.me
Bonjour,
Je suis VRAIMENT débutant.
Dans ce tuto, je comprends bien comment on crée un filtre, où on place son code (fichier functions.php du thème enfant), mais pas où on déclenche/utilise le filtre créé.
C’est sans doute évident ???
Merci pour le partage
Essa é uma receita fácil e também prática de fazer a ganache, porém não é a forma
profissional. http://www.imaguss.cloud/profile.php?id=103304