Les hooks WordPress sont des mécanismes permettant d’effectuer une action supplémentaire à un instant donné prévu par le système.
Il existe deux types de hooks WordPress: les actions et les les filtres.
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 :
[php]after_setup_theme
wp_footer
wp_head
admin_head
admin_enqueue_scripts
pre_get_posts
Voyons comment facilement utiliser un hook WordPress pour ajouter le code Google Analytics dans le footer d’un thème à l’aidu hook wp_footer
Ouvrez le fichier functions.php et ajoutez le code suivant :
[php]add_action(‘wp_footer’, ‘add_google_analytics’);
[/php]Puis créez la fonction add_google_analytics :
[php]function add_google_analytics()
{
$ga = get_option(‘google_analytics’);
if(!empty($ga))
echo stripslashes($ga);
}
Il aurrait été plus simple d’ajouter le code ci-dessus directement dans le footer soit dans le ficheir footer.php, mais avec cette méthode le code est plus facilement 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 :
[php]body_class
the_content
wp_title
excerpt_length
Le filtre the_content va permettre de modifier le contenu d’un article avant de l’afficher.
Dans l’exemple ci-dessous, l’objectif et de personnaliser les […] présent par défaut à la fin des extraits d’articles.
Toujours depuis le fichier functions.php
[php]add_filter(‘get_the_excerpt’, ‘new_excerpt_hellip’);
[/php]Avec les filtres, ce sont les paramètres passés à notre fonction qui permettront de modifier leur valeur avant de les afficher.
[php]function new_excerpt_hellip($text)
{
return str_replace(‘[…]’, ‘…’, $text);
}
Conclusion
Les hooks WordPress sont un très bon moyen de modifier le comportement de WordPress selon nos besoins afin 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 fichiers de template.
Liste complète de tout les hooks WordPress: https://codex.wordpress.org/Plugin_API/Action_Reference