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.