vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Action

En anglais : « Action (hook) »

Une action est un point d'accroche du code WordPress qui déclenche l'exécution de fonctions personnalisées à un moment précis, sans attendre ni modifier de valeur en retour.

WordPress annonce en permanence, tout au long de son exécution, qu’il vient d’atteindre telle ou telle étape : un utilisateur vient de se connecter, un article vient d’être enregistré, le pied de page va bientôt s’afficher. Ces annonces s’appellent des actions, déclenchées par la fonction do_action() à des endroits stratégiques du cœur, des thèmes et des extensions. N’importe quel code peut alors s’y « accrocher » avec add_action() pour exécuter sa propre fonction à ce moment précis.

Fonctionnement dans WordPress

Contrairement à un filtre, une action ne reçoit pas nécessairement de valeur à retourner : elle sert à déclencher un effet de bord (envoyer un e-mail, écrire un journal, enregistrer une donnée), pas à transformer une valeur existante. Des actions comme init, wp_enqueue_scripts ou save_post sont parmi les plus utilisées pour respectivement initialiser des réglages, charger des scripts et styles, ou réagir à l’enregistrement d’un contenu.

Exemple

add_action( 'save_post', function( $post_id ) {
  if ( get_post_type( $post_id ) === 'produit' ) {
    do_action( 'mon_plugin/produit_enregistre', $post_id );
  }
} );

À ne pas confondre avec

  • Le filtre, qui transforme et retourne obligatoirement une valeur (comme le titre d’un article), alors que l’action se contente d’exécuter du code sans obligation de retour.
  • Le crochet d’activation (register_activation_hook()), qui ne se déclenche qu’une seule fois, à l’activation de l’extension, et non à chaque exécution normale du site comme la plupart des actions courantes.
  • L’ordre d’exécution de plusieurs fonctions accrochées à la même action dépend de leur priorité (troisième argument de add_action()), et non de l’ordre de déclaration dans le code, un piège classique pour qui débute.