Contact

Nous contacter

hello@afterglow-web.agency
tél : +33 (0) 6 89 81 84 51

Nous trouver

Afterglow Web Agency
5, rue Alexandre Dumas
06100 Nice
France

Hooks WordPress, qu’est-ce que c’est ?

11 Sep 2020 Par Cédric Moris Kelly

Wordpress

Dans le développement de thème WordPress, les Hooks sont des fonctions qui peuvent être appliquées à une Action ou à un Filtre dans WordPress. Les Actions et les Filtres dans WordPress sont des fonctions qui peuvent être modifiées par les développeurs de thèmes et de plugins pour changer la fonctionnalité par défaut de WordPress.

Les fonctions utilisées pour modifier les Actions/Filtres dans WordPress peuvent être « hookées » (crochetées) dans WordPress. Cependant, il est important de noter que les actions et les filtres ne sont pas la même chose. Les actions sont des fonctions exécutées lorsqu’un certain événement se produit dans WordPress. Les filtres vous permettent de modifier le résultat déjà produit par certaines fonctions. Les arguments utilisés pour hooker les filtres et les actions sont les mêmes mais ils sont différents en termes de fonctionnalité et de comportement.

Exemple d’un hook utilisé avec un filtre dans WordPress :

function afg_filter_excerpt( $output ) {
  if ( has_excerpt() && ! is_attachment() ) {
    $output .= 'foo';
  }
  return $output;
}
add_filter( 'get_the_excerpt', 'afg_filter_excerpt' );

L’exemple de code ci-dessus crée une fonction afg_filter_excerpt qui est connectée au filtre get_the_excerpt.
La fonction récupère le résultat de get_the_excerpt à travers le filtre donc et se contente d’ajouter la chaine de caractères ‘foo’ à la fin de l’extrait.

Exemple d’un hook appliqué à une action :

fonction mytheme_enqueue_script() {
    wp_enqueue_script( 'my-custom-js', 'custom.js', false ) ;
}
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_script' ) ;

L’exemple de code ci-dessus crée une fonction mytheme_enqueue_script qui est déclenchée par l’action wp_enqueue_scripts.
L’action wp_enqueue_scripts et celle qui vous permet de lier vos feuilles de style CSS et vos scripts JS à votre thème.