Comprendre les hooks dans Wordpress

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 :

  • le nom du hook
  • la méthode de rappel
 
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

Voir aussi

Modifier une collection à chaud en PHP

Modifier une collection à chaud en PHP

Dans les boucles foreach, il est parfois utiles de vouloir modifier à chaud les variables contenues dans un tableau. Je suis tombé récemment sur un …

Problème de reverse proxy dans l'admin de SPIP

Problème de reverse proxy dans l'admin de SPIP

Si vous utilisez un reverse proxy, l’admnistration de SPIP se basera sur l’adresse présente dans la variable SERVER_NAME du tableaux super …

Plugin Wordpress de correction des erreurs de grammaires

Plugin Wordpress de correction des erreurs de grammaires

Bien que de nombreux navigateurs disposent par défaut de correcteur orthographique, les erreurs de grammaires passent entre les mailles du filet. Le …

Supprimer $this dans les scripts de Zend_View

Supprimer $this dans les scripts de Zend_View

Avec le composant de vue Zend_View, il faut sans arret préfixé les variables par le pointeur $this. Pourtant, il existe une solution pour accéder …

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