AJaX dans votre thème ou plugin WordPress

Voici les bases d’une fonctionnalité AJaX dans WordPress.

Préparation :

A la suite des inclusions Javascript grâce à la fonction wp_enqueue_script, il faut, pour faciliter le développement, ajouter une instruction qui va nous permettre de passer des variables PHP à notre fichier Javascript :

La fonction wp_localize_script nous permet de passer tout le contenu du tableau qu’elle contient à notre fichier JS. Dans celui-ci, nous aurons accès à une variable nommée kodex_js, de la forme :

 

Le Javascript :

Pour notre appel AJaX, nous utilisons ici la propriété kodex_js.ajaxurl fournie par PHP. La propriété action est indispensable : elle est directement liée au code PHP qui sera exécuté. Les autres paramètres sont facultatifs et libres.

 

Le PHP :

Pour pouvoir appeler la fonction de son choix en AJaX, il faut se greffer sur les deux hooks wp_ajax_ et wp_ajax_nopriv_. Les deux sont nécessaires si les appels font faits depuis le front-office par des utilisateurs non-loggés. Ils sont suivis par le terme action utilisé dans le Javascript. Les paramètres se récupèrent avec $_REQUEST, $_POST ou $_GET, selon la méthode utilisée en Javascript. Attention, les appels AJaX dans WordPress écrivent systématiquement un 1 en fin d’insctruction. Pour éviter celà, il faut mettre un die() ou un exit() à la fin de notre fonction. Si cette fonction est également depuis de PHP, le die() peut être conditionnel en se basant sur la constante DOING_AJAX.