Moje wywołanie ajax dla danych JSON działa tak, jak to działa. 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.
Mam 2 pytania
1) Dlaczego warto korzystać z admin-ajax.php zamiast themes/example/json.php
kodować plik Json w osobnym pliku, np. I kodować tam dane?
2) Jak działa admin-ajax.php? Nie rozumiem wiele z tego pliku. Czy ładuje wszystkie funkcje, abyś mógł z nich korzystać?
Dzięki!
themes/example/json.php
należy uznać ją za poważną lukę w zabezpieczeniachOdpowiedzi:
Używanie
admin-ajax.php
oznacza, że WordPress Core jest załadowany i dostępny. Bez tego musisz ręcznie załadować potrzebne pliki, co jest skomplikowanym procesem i podatnym na awarie, jeśli nie znasz bardzo dobrze rdzenia. A jak dobry jesteś w zakresie bezpieczeństwa Javascript?$wpdb
i$WP_Query
. To jest około linii 25.send_nosniff_headers()
nocache_headers()
.admin_init
pożary haka.$_GET
lub$_POST
.Moim zdaniem elementy nr 1 i nr 6 są podstawowymi przyczynami korzystania z interfejsu API AJAX. Masz WordPress Core, którego prawie na pewno potrzebujesz, i masz taki sam system bezpieczeństwa logowania jak w pozostałej części WordPress.
źródło
admin-ajax.php
jest częścią API AJAX WordPress i tak, obsługuje żądania zarówno z zaplecza, jak i z przodu. oto, co wymyślę dla twojego pytania, które jest:dla logiki, którą możesz odwiedzić tutaj.
Zakłada się, że wiesz już, jak kolejkować JavaScript itp.
Fragment JavaScript:
Kawałek PHP:
może być to pomocne. admin-ajax.php vs Niestandardowy szablon strony dla żądań Ajax
źródło