Hook

Mécanisme permettant d’enclencher une ou plusieurs fonctions à des moments spécifiques.

Un hook, correspond à un emplacement programmé en mémoire par une fonction. Un module ou une fonctionnalité vient s’y accrocher pour réaliser des actions supplémentaires à des moments déterminés.

Un hook sert à personnaliser le fonctionnement d’un logiciel, d’un thème, d’une extension, d’en modifier son comportement natif sans pour autant toucher au code source.

Où placer un hook ?

Les hooks placés dans des plugins sont préférables aux hooks placés dans le fichier functions.php du thème, car ils sont conservés lorsque vous changez de thème.

Comment appliquer un hook ?

Les hooks peuvent s’appliquer à des actions ou à des filtres.

Il en existe 2 types :

  • ceux qui placent en mémoire les fonctions pour qu’elles s’exécutent au bon moment : ajoutent des actions, filtrent des éléments pour permettre de modifier une donnée traitée : add_action() et add_filter()
ma_fonction_change_hook(){ 
     // mon action 
   } 
add_action('hook_action_existant','ma_fonction_change_hook'); 
ma_fonction_change_hook(){ 
     // mon filtre 
   } 
add_filter(’hook_filtre_existant’,’ma_fonction_change_hook’); 
  • ceux qui déclenchent les actions ou les affichages : exécutent les fonctions appliquées au hook ou affichent le résultat de la donnée traitée : do_action() et apply_filter()
// $arg1, $arg2 arguments optionnels
do_action( 'hook_action_existant', $arg1, $arg2 );
// $arg1, $arg2 arguments optionnels
apply_filters( ’hook_filtre_existant’, $arg1, $arg2 );

Principaux hooks d’action

  • auth_cookie_malformed
  • auth_cookie_valid
  • add_theme_support()
  • after_setup_theme()
  • admin_head()
  • admin_enqueue_scripts()
  • load_textdomain()
  • muplugins_loaded
  • pre_get_posts()
  • plugins_loaded()
  • registered_taxonomy()
  • registered_post_type()
  • sanitize_comment_cookies()
  • set_current_user()
  • setup_theme()
  • wp_head()
  • wp_footer()

Principaux hooks de filtres

  • body_class()
  • current_filter()
  • excerpt_lenght()
  • the_content()
  • wp_filter()
  • wp_title()

Synonyme : crochet, point d’ancrage, point d’entrée, emprise.

Voir aussi : action, filtre