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 :

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

Wordpress : Une mise à jour automatique a échoué en cours de route ...

Wordpress : Une mise à jour automatique a échoué en cours de route ...

Lors de mise à jour de Wordpress via le lien dans l’interface d’admnistration, il n’est pas rare de voir apparaitre le message. Une …

Les 12 meilleurs plugins pour Wordpress

Les 12 meilleurs plugins pour Wordpress

Wordpress propulse mon blog depuis près d’un année, j’ai recherché à de nombreuses reprise les plugins qui pouvait m’être le plus …

Afficher les pages et les posts modifiées récemment avec Wordpress

Afficher les pages et les posts modifiées récemment avec Wordpress

Dans un blog, il peut s’avérer nécessaire de faire remonter sur la page d’accueil ou dans une colonne d’un site les derniers posts …

La gestion des brouillons avec Wordpress

La gestion des brouillons avec Wordpress

Une des fonctionnalités apportés par Wordpress 2.6 était les révisions, c’est à dire un mécanisme permettant de garder chaque version d’un …

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