web-dev-qa-db-fra.com

Quel est l'intérêt d'utiliser Wordpress dans admin-ajax.php?

J'essaie de comprendre pourquoi utiliser admin-ajax.php est avantageux par rapport à quelque chose comme ceci:

add_action ('wp_loaded', 'my_ajax');
function my_ajax() {
   // Do Ajax, Check $_POST
   die();
}

Avec ajax JQuery, il suffit de pointer sur l'index du blog.

admin-ajax.php semble assez compliqué pour faire quelque chose de simple, devoir enregistrer des scripts, ajouter des points d'ancrage et configurer une URL js pour pointer vers admin-ajax.php, puis avec wp_ajax_nopriv_ vs wp_ajax_. Sans compter que c’est un peu bizarre que l’arrière-plan soit mélangé à l’avant. Je suis à peu près sûr qu'il y a une analogie ici.

Alors pourquoi l'utiliser? Est-ce que admin-ajax.php a moins de frais généraux? Est-ce purement une chose de normes? Y at-il quelque chose de magique à ce sujet? Qu'est-ce qui vous manque en ne l'utilisant pas?

2
true

Premièrement, comme dans beaucoup de choses dans WordPress, ce n’est pas comme si quelqu'un avait décidé de "faire en sorte que cela soit net et pratique". C'était plutôt comme si quelqu'un l'avait giflé pour quelque chose, puis il était plus utilisé dans admin, puis beaucoup dans admin, puis il était devenu pratique de l'utiliser aussi pour les non-admin. Ou quelque chose dans ce sens.

Deuxièmement, ce n'est pas ce que fait , mais sachant qu'il fait toujours la même chose. Vous n'avez aucune idée de ce que demande la partie arbitraire du front-end. Que se passe-t-il si le plug-in d'analyse est en cours d'exécution, en le comptant comme vue de page? Que se passe-t-il s'il existe une logique de redirection complexe qui gère les URL saisonnières? Et si, et si ...

Le point final Ajax signifie pour ajax:

  • il déclare DOING_AJAX constant pour le contexte, beaucoup de choses le cherchent à faire quoi que ce soit
  • il met en place des en-têtes HTTP et d'autres choses
  • il vous donne la convention d'organisation de code de base, y compris la distinction utilisateur/anonyme
4
Rarst