# Action

> 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.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/action-hook/

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.
