vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Crochet d’activation

En anglais : « Activation hook »

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.

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.