# Crochet d’activation

> Point d'entrée exécuté une seule fois au moment où une extension WordPress est activée, utilisé pour préparer les réglages initiaux ou les tables nécessaires.

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

Certaines opérations n'ont de sens qu'au tout premier lancement d'une extension : créer une option par défaut, ajouter une table dédiée, réserver une page. Les exécuter à chaque chargement serait un gaspillage inutile ; ce crochet permet de les isoler dans un moment précis du cycle de vie de l'extension.

## Comment l'enregistrer

La fonction `register_activation_hook()` associe le fichier principal de l'extension à une fonction de rappel, appelée juste après le clic sur « Activer » dans la liste des extensions :

```
function initialiser_mon_extension() {
  add_option( 'mon_extension_version', '1.0.0' );
  flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'initialiser_mon_extension' );
```

Vider les règles de réécriture avec `flush_rewrite_rules()` est un usage courant lorsqu'une extension enregistre un nouveau type de contenu ou une nouvelle structure d'URL.

## Pièges fréquents

- Le code exécuté par ce crochet doit être placé dans le fichier principal de l'extension ou y être chargé avant l'appel à `register_activation_hook()`, sinon la fonction n'est pas trouvée.
- Ce crochet ne se déclenche pas lors d'une simple mise à jour de fichiers : il faut le distinguer d'une logique de migration de données, qui doit être gérée séparément en comparant un numéro de version stocké en option.
- Créer des tables personnalisées ici nécessite d'utiliser `dbDelta()` plutôt qu'une requête SQL directe, pour rester compatible avec les mises à jour ultérieures de la structure.
- Sur un multisite, une extension activée « pour le réseau » reçoit un second paramètre booléen dans sa fonction d'activation, indiquant si l'opération doit se répéter sur chaque site existant.
