wp_ajax_{$action}

Définition : wp_ajax_{$action} est un hook dynamique WordPress permettant de traiter une requête AJAX liée à une action donnée pour un utilisateur authentifié. Son nom dépend du paramètre action envoyé au serveur.

Terminologie

Terme officiel : wp_ajax_{$action}

Autres appellations : Hook AJAX authentifié

À quoi cela sert

Il permet de créer des comportements administratifs sans recharger entièrement une page : contrôle d’un statut, consultation de données ou lancement d’une action autorisée.

Comment cela fonctionne

admin-ajax.php lit le paramètre action et déclenche le hook wp_ajax_ suivi du nom correspondant. Le callback doit gérer le nonce, les droits, les entrées et la forme de la réponse.

Dans quel contexte l’utiliser

À utiliser pour un endpoint AJAX authentifié. Les accès anonymes reposent sur le hook distinct wp_ajax_nopriv_{$action}, soumis à des règles supplémentaires.

Exemple concret

Une interface de diagnostic interroge le serveur pour connaître une valeur calculée uniquement destinée aux administrateurs.

Exemple de code commenté

Extrait pédagogique PHP pour extension WordPress : adapter au contexte et tester sur un environnement de développement avant tout usage.

<?php
add_action( 'wp_ajax_atoolpha_demo_ping', function () {
    check_ajax_referer( 'atoolpha_demo_ping', 'nonce' );
    if ( ! current_user_can( 'manage_options' ) ) {
        wp_send_json_error( array( 'message' => 'Accès refusé' ), 403 );
    }
    wp_send_json_success( array( 'etat' => 'ok' ) );
} );
// Requête POST vers admin-ajax.php : action=atoolpha_demo_ping

Explication pas à pas de l’exemple

1. Le hook enregistre le callback atoolpha_demo_ping. 2. La requête doit transmettre le même nom action. 3. Le jeton et le droit sont contrôlés. 4. Le serveur renvoie une réponse JSON.

Résultat attendu

Un administrateur autorisé reçoit un objet JSON indiquant etat=ok lorsque la requête a été préparée correctement.

Mise en pratique guidée

Créer le hook wp_ajax_atoolpha_demo_ping dans une extension de test et envoyer une requête POST avec action=atoolpha_demo_ping. Vérifier le résultat dans l’onglet Réseau du navigateur. Changer le paramètre action pour constater que le callback n’est plus sélectionné. Tester ensuite sans session pour observer la différence avec un hook nopriv.

Précautions et limites

Ne jamais supposer qu’un endpoint authentifié est automatiquement autorisé pour tous les utilisateurs connectés. Contrôler explicitement les capacités et limiter les actions coûteuses.

À ne pas confondre

wp_ajax_{$action} est réservé aux sessions authentifiées ; wp_ajax_nopriv_{$action} ouvre un chemin aux visiteurs anonymes ; REST API utilise un autre routage.

Visualisation du mécanisme

Lecture séquentielle : Parcours d’une requête AJAX de l’interface au callback PHP.

Schéma textuel du déroulement : son exécution dépend du contexte et des contrôles décrits ci-dessus.

Termes associés

  • admin-ajax.php
  • check_ajax_referer()
  • wp_send_json_success()

Références officielles

Bouton retour en haut de la page