Mon appel ajax pour les données json fonctionne bien comme ceci functions.php:
add_action( 'wp_ajax_nopriv_load-filter', 'prefix_load_cat_posts' );
add_action( 'wp_ajax_load-filter', 'prefix_load_cat_posts' );
function prefix_load_cat_posts () {
//get data here
}
javascript:
var ajaxurl = 'http://'+window.location.host+'/wp-admin/admin-ajax.php';
jQuery.ajax({
type: 'POST',
url: ajaxurl,
etc.
J'ai 2 questions.
1) Pourquoi utiliser admin-ajax.php au lieu d'encoder votre json dans un fichier séparé comme themes/example/json.php
et d'y encoder vos données?
2) Comment fonctionne admin-ajax.php? Je ne comprends pas grand-chose de ce dossier. Charge-t-il toutes les fonctions pour que vous soyez prêt à les utiliser?
Merci!
themes/example/json.php
devrait être considérée comme une vulnérabilité de sécurité majeureRéponses:
L'utilisation
admin-ajax.php
signifie que WordPress Core est chargé et disponible. Sans cela, vous devrez charger manuellement les fichiers dont vous avez besoin, ce qui est un processus compliqué et susceptible d'échouer si vous ne connaissez pas très bien le Core. Et, comment êtes-vous bon avec la sécurité Javascript?$wpdb
et$WP_Query
. C'est à peu près à la ligne 25.send_nosniff_headers()
nocache_headers()
.admin_init
crochet se déclenche.$_GET
ou$_POST
.Les éléments # 1 et # 6 sont les principales raisons d'utiliser l'API AJAX, à mon avis. Vous avez le WordPress Core, dont vous avez presque certainement besoin, et vous avez le même système de sécurité de connexion qu'avec le reste de WordPress.
la source
admin-ajax.php
fait partie de l' API WordPress AJAX , et oui, il gère les demandes du backend et du front. voici ce que je trouve pour votre question:pour la logique que vous pouvez visiter ici.
Cela suppose que vous savez déjà comment mettre en file d'attente JavaScript, etc.
Pièce JavaScript:
Pièce PHP:
peut être utile. admin-ajax.php vs Modèle de page personnalisé pour les demandes Ajax
la source