Mein Ajax-Aufruf für JSON-Daten funktioniert wie folgt.
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.
Ich habe 2 Fragen.
1) Warum sollten Sie admin-ajax.php verwenden, anstatt Ihren json in einer separaten Datei zu themes/example/json.php
codieren und Ihre Daten dort zu codieren?
2) Wie funktioniert admin-ajax.php? Ich verstehe nicht viel aus dieser Datei. Lädt es alle Funktionen, damit Sie sie verwenden können?
Vielen Dank!
themes/example/json.php
dies als große Sicherheitslücke angesehen werden sollteAntworten:
Verwenden
admin-ajax.php
bedeutet, dass der WordPress Core geladen und verfügbar ist. Ohne dies müssten Sie die benötigten Dateien von Hand laden. Dies ist ein komplizierter Prozess und fehleranfällig, wenn Sie den Core nicht sehr, sehr gut kennen. Und wie gut sind Sie mit Javascript-Sicherheit?$wpdb
und verwenden können$WP_Query
. Das ist ungefähr in Zeile 25.send_nosniff_headers()
nocache_headers()
.admin_init
Haken feuert.$_GET
oder angefordert werden$_POST
.Die Punkte 1 und 6 sind meiner Meinung nach die Hauptgründe für die Verwendung der AJAX-API. Sie haben den WordPress Core, den Sie mit ziemlicher Sicherheit benötigen, und Sie haben das gleiche Anmeldesicherheitssystem wie der Rest von WordPress.
quelle
admin-ajax.php
ist Teil der WordPress AJAX-API und verarbeitet Anfragen sowohl vom Backend als auch vom Frontend. Hier ist, was ich für Ihre Frage herausfinde:Für die Logik können Sie hier besuchen.
Dies setzt voraus, dass Sie bereits wissen, wie Sie JavaScript usw. in die Warteschlange stellen.
JavaScript-Stück:
PHP-Stück:
kann dies hilfreich sein. admin-ajax.php vs Benutzerdefinierte Seitenvorlage für Ajax-Anfragen
quelle