Мой AJAX-вызов для данных JSON работает нормально, как эти 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.
У меня есть 2 вопроса.
1) Зачем использовать admin-ajax.php вместо того, чтобы кодировать свой json в отдельный файл, например, themes/example/json.php
и там кодировать свои данные?
2) Как работает admin-ajax.php? Я не очень понимаю из этого файла. Загружает ли он все функции, чтобы вы были готовы их использовать?
Спасибо!
themes/example/json.php
следует считать серьезной уязвимостью безопасностиОтветы:
Использование
admin-ajax.php
означает, что ядро WordPress загружено и доступно. Без этого вам нужно будет вручную загрузить нужные вам файлы, что является сложным процессом и может привести к сбою, если вы не очень хорошо знаете ядро. И насколько хорошо вы с безопасностью Javascript?$wpdb
и$WP_Query
. Это примерно через строку 25.send_nosniff_headers()
nocache_headers()
.admin_init
крючок пожаров.$_GET
или$_POST
.По моему мнению, пункты № 1 и № 6 являются основными причинами использования AJAX API. У вас есть ядро WordPress, в котором вы почти наверняка нуждаетесь, и у вас та же система безопасности входа в систему, что и в остальной части WordPress.
источник
admin-ajax.php
является частью WordPress AJAX API , и да, он обрабатывает запросы как из бэкэнда, так и из front. вот что я понял для вашего вопроса:для логики вы можете посетить здесь.
Это предполагает, что вы уже знаете, как поставить JavaScript в очередь и т. Д.
Часть JavaScript:
PHP Piece:
может быть это полезно admin-ajax.php vs пользовательский шаблон страницы для запросов Ajax
источник