doing_action()
Définition : doing_action() permet de savoir si une action WordPress est actuellement en cours de traitement, y compris lorsqu’un autre hook est exécuté à l’intérieur. Elle renvoie un booléen et peut cibler un nom précis.
Terminologie
Terme : doing_action()
Autres appellations : Action en cours
À quoi cela sert
WordPress conserve une pile de hooks en cours d’exécution. En fournissant un nom, la fonction vérifie si ce hook figure dans la pile active ; sans nom, elle recherche si une action quelconque est en cours. Elle diffère de did_action(), qui mesure les déclenchements passés.
Dans quel contexte l’utiliser
L’utiliser pour éviter certaines opérations durant une phase particulière, ou pour comprendre des appels imbriqués dans le moteur des hooks. Limiter ces dépendances au cycle d’exécution aux cas réellement nécessaires.
Exemple concret
Une routine partagée ne souhaite pas effectuer son diagnostic pendant que WordPress construit un menu d’administration.
Exemple de code commenté
<?php
function atoolpha_demo_diagnostic() {
if ( doing_action( 'admin_menu' ) ) {
return; // Pas de diagnostic pendant la construction du menu.
}
// Diagnostic autorisé par le cycle d’exécution ici.
}
Explication de l’exemple
Le callback vérifie que admin_menu n’est pas en cours d’exécution avant de lancer son diagnostic. La condition dépend de la pile active ; elle n’évalue pas les droits de l’utilisateur ni son écran.
Précautions et limites
Ne pas substituer doing_action() à current_user_can() : le contexte d’exécution n’est pas un contrôle de permissions.
Termes associés
- current_action()
- did_action()
- doing_filter()
