Mi llamada ajax para datos json funciona bien 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.
Tengo 2 preguntas
1) ¿Por qué usar admin-ajax.php en lugar de codificar su json en un archivo separado themes/example/json.php
y codificar sus datos allí?
2) ¿Cómo funciona admin-ajax.php? No entiendo mucho de ese archivo. ¿Carga todas las funciones para que esté listo para usarlas?
¡Gracias!
themes/example/json.php
debería considerarse una vulnerabilidad de seguridad importanteRespuestas:
Usar
admin-ajax.php
significa que WordPress Core está cargado y disponible. Sin eso, necesitaría cargar manualmente los archivos que necesita, lo cual es un proceso complicado y propenso a fallas si no conoce muy bien el Core. Y, ¿qué tan bueno eres con la seguridad de Javascript?$wpdb
y$WP_Query
. Eso es a través de la línea 25.send_nosniff_headers()
nocache_headers()
.admin_init
gancho se dispara.$_GET
o$_POST
.Los elementos n. ° 1 y n. ° 6 son las razones principales para utilizar la API AJAX, en mi opinión. Tiene el WordPress Core, que casi seguramente necesita, y tiene el mismo sistema de seguridad de inicio de sesión que con el resto de WordPress.
fuente
admin-ajax.php
es parte de la API AJAX de WordPress , y sí, maneja solicitudes tanto de backend como de front. Aquí lo que descubrí para su pregunta es:por la lógica que puedes visitar aquí.
Esto supone que ya sabe cómo poner en cola JavaScript, etc.
Pieza de JavaScript:
Pieza de PHP:
puede ser de ayuda admin-ajax.php vs Plantilla de página personalizada para solicitudes de Ajax
fuente