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
.