Cómo cargar wordpress correctamente en un script que no sea WP para la solicitud AJAX

2

Quiero un script en mi tema, ajax.php, que quiero cargar o acceder desde otras páginas frontales utilizando ajax.

En ajax.php quiero acceder a las funciones básicas de WP, como get_posts (), do_shortcode () etc. I.e. Necesito WordPress cargado en el script.

Tradicionalmente, he configurado una página en el administrador y le he dado una plantilla personalizada, así que para mis solicitudes ajax puedo enviarlas a www.site.com/ajax y la plantilla personalizada se encarga de la solicitud. Si bien esto funciona bien, estoy bastante seguro de que esta no es la forma más eficiente o segura de manejar ajax en la interfaz de WP, pero no estoy seguro de cómo hacerlo correctamente.

Gracias.

    
pregunta patnz 03.11.2011 - 21:28

2 respuestas

5

Realmente no es una buena práctica hacerlo de esta manera. De hecho, no es necesario que cree un archivo ajax.php a menos que simplemente lo incluya en su archivo functions.php. Necesitas leer sobre AJAX en WordPress. Simplemente agregaría una acción en 'wp_ajax_name_of_action' y simplemente especificaría la acción dentro de la función ajax de javascript.

Ejemplo simple del codificador de WordPress:

<?php
add_action('admin_head', 'my_action_javascript');

function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {

var data = {
    action: 'my_action',
    whatever: 1234
};

// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
    alert('Got this from the server: ' + response);
});
});
</script>
<?php
}
add_action('wp_ajax_my_action', 'my_action_callback');

function my_action_callback() {
global $wpdb; // this is how you get access to the database

$whatever = intval( $_POST['whatever'] );

$whatever += 10;

    echo $whatever;

die(); // this is required to return a proper result
} 
    
respondido por el Kevin Langley Jr. 03.11.2011 - 21:41
2

Consulte la página del códice sobre cómo utilizar correctamente AJAX en complementos . Las mismas acciones también funcionarán en las funciones de un tema.php.

También vea esta publicación de blog vinculada en la página anterior del códice para más ejemplos de código.

    
respondido por el Milo 03.11.2011 - 21:41

Lea otras preguntas en las etiquetas