admin-ajax.php
Définition : admin-ajax.php est le point d’entrée historique de WordPress pour certaines requêtes AJAX. Il reçoit une action, charge l’environnement approprié et distribue la demande aux gestionnaires enregistrés par les hooks prévus.
Terminologie
Appellation / équivalent : admin-ajax.php — point d’entrée AJAX WordPress
Autres appellations : AJAX WordPress, Endpoint AJAX historique
Comprendre le fonctionnement
Le fichier se trouve dans wp-admin, mais il peut aussi traiter des requêtes provenant des pages publiques. Les actions sont associées à des hooks tels que wp_ajax_{action} pour les utilisateurs connectés et wp_ajax_nopriv_{action} pour les visiteurs non authentifiés.
Chaque gestionnaire doit effectuer ses propres vérifications de permissions, de données et de protection contre les requêtes abusives. Un nonce aide à vérifier l’intention d’une requête mais ne constitue pas un mécanisme d’autorisation ni une garantie de sécurité à lui seul.
Exemple concret
Un formulaire envoie une requête AJAX pour récupérer un résultat sans recharger toute la page, sous réserve que son gestionnaire soit enregistré.
Exemple de code commenté
<?php
// Exemple pédagogique dans un plugin WordPress chargé.
add_action( 'wp_ajax_atoolpha_demo', function () {
// Contrôle d'intention : ne remplace pas le contrôle de droits.
check_ajax_referer( 'atoolpha_demo', 'nonce' );
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( array( 'message' => 'Accès refusé' ), 403 );
}
wp_send_json_success( array( 'message' => 'Opération autorisée' ) );
} );
Point technique à retenir
Pour de nouvelles intégrations, évaluer également la REST API WordPress ; admin-ajax.php reste pertinent pour des usages spécifiques.
Termes associés
- AJAX
- REST API
- wp_ajax_{$action}
- Nonce
