Comprendre les hooks dans Wordpress

Beaucoup d’extension sous Wordpress utilisent les hooks pour faire certaine tache comme ajouter filtrer les données, ajouter du texte à la fin des articles, ou encore ajouter des fonctionnalités à l’interface d’administration. Il existe un grand nombre de plugin disponible pour Wordpress mais il est souvent utile d’écrire voir de modifier des plugin existant pour obtenir la fonctionnalité désirée. Comprendre le mécanisme des hooks sous Wordpress est donc indispensable.

Wordpress met à la disposition des développeurs 2 types de hook : les actions et les filtres.

Les actions

Les actions sont des hooks orientés évènement. Quand un évènement spécifique est executé dans Wordpress comme sauvegarder un post, charger la page d’administration, envoyer le html au navigateur, les plugins peuvent intercepter ces évènements pour y injecter un peu de code à exécuter.

Par exemple, a plugin peut envoyer un ping vers un serveur lorsque est un article est publié, il peut mettre à jour le profil sur les différentes plate-forme de réseaux sociaux.

Les filtres

Les filtres modifient le contenu, cela peut être le contenu riche, l’auteur, les catégories ou encore les images. Les filtres fonctionnent toujours de la même manière, ils prennent en entrée des données, et ils retournent les données modifiés.

Anatomie des hooks

Les fonctions add_action() et add_filter() permettent d’ajouter des hooks.

Il est également possible de supprimer des hooks via les fonctions remove_action() et remove_filter().

Dans sa forme la plus basique, ces fonctions prennent 2 arguments :

add_action('pre_post_save','function_name'); 
add_action('pre_post_save',array('className','methodName'); 

Les priorités

Lorsque plusieurs hook sont définis pour le même évènement, il est intéressant de pouvoir définir l’ordre dans lequel ces hooks vont s’executer. Wordpress propose un troisième argument optionnel, un entier indiquant la priorité, plus le nombre est grand, plus il a de chance d’être exécuter en premier. Inversement, plus le nombre est petit plus il a de chance d’être exécuter en dernier. La valeur par défaut est de 10.

Les paramètres optionnels

Le quatrième argument est le nombre d’argument que prend en paramètre le callback, par défaut ce nombre est défini à 1.

Pour aller plus loin, le codex Wordpress explique un peu plus en détail le fonctionnement des hooks. Par ailleurs, sur le site d’Adam R Brown on trouve une liste de hook disponible pour chaque version de Wordpress.

Où définir les hooks ?

Les hooks peuvent être définis à plusieurs endroits dans Wordpress. Généralement, on les trouve dans les plugins mais il est parfaitement possible de les définir dans le fichier functions.php d’un thème Wordpress. Le choix de l’une ou l’autre sera déterminé du hook. Un hook spécifique à un thème particulier trouvera naturellement sa place dans le fichier functions.php, a l’inverse un hook liées au bon fonctionnement d’un plugin se trouvera dans le plugin.

comments powered by Disqus
A la une
  • Rencontre du numérique 2019 - Nîmes
  • référencement naturel d'un hôtel
  • Développeur eZ Platform
  • Tech lead Symfony
  • Expert Qualité Web

Copyright - Sylvain FIX

2009 - 2019