Minha chamada ajax para dados json funciona bem como esta 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.
Eu tenho 2 perguntas.
1) Por que usar admin-ajax.php em vez de codificar seu json em um arquivo separado, como themes/example/json.php
codificar seus dados lá?
2) Como o admin-ajax.php funciona? Eu não entendo muito desse arquivo. Ele carrega todas as funções para que você esteja pronto para usá-las?
Obrigado!
themes/example/json.php
deveria ser considerada uma grande vulnerabilidade de segurançaRespostas:
Usar
admin-ajax.php
significa que o WordPress Core está carregado e disponível. Sem isso, você precisaria carregar manualmente os arquivos necessários, o que é um processo complicado e propenso a falhas se você não conhece muito bem o Core. E quão bom você está com a segurança Javascript?$wpdb
e$WP_Query
. Isso acabou na linha 25.send_nosniff_headers()
nocache_headers()
.admin_init
gancho dispara.$_GET
ou$_POST
.Os itens 1 e 6 são os principais motivos para usar a API AJAX, na minha opinião. Você tem o WordPress Core, que quase certamente precisa, e possui o mesmo sistema de segurança de login que o restante do WordPress.
fonte
admin-ajax.php
faz parte da API AJAX do WordPress e, sim, lida com solicitações de back-end e front-end. aqui o que eu descobri para sua pergunta que é:para a lógica que você pode visitar aqui.
Isso pressupõe que você já sabe enfileirar JavaScript etc.
Peça JavaScript:
Peça PHP:
pode ser útil. admin-ajax.php vs modelo de página personalizado para solicitações de Ajax
fonte