Consultas AJAX en WordPress con wp_ajax

HOla amigos!

Les comenté anteriormente que estoy desarrollando un theme wordpress desde 0 (cero), pues les comento que necesitaba crear consultas ajax y no tenia ni idea de como hacerlo, bueno aquí les paso un pequeño tutorial que encontré en internet, quizá les sirva!

http://geekpreneur.blogspot.com/2009/06/how-to-use-wpajax-in-wordpress.html ( copia y pega la URL :) )

Bien!, lo explicaré a mi modo y en español (la url anterior contiene un artículo en inglish);

Veamos

Haciendo consultas a través de wp_ajax();

En pocas palabras, necesitamos crear una funcion en el archivo functions.php de nuestro theme o plugin que estemos desarrollando/modificando, la funcion a crear será llamada luego de que ocurra un evento en wordpress, los eventos los manejamos con add_action(), en este método declararemos la funcion a ejecutar (la que vamos a crear) para que sea lanzada luego de que ocurra un evento ajax…

Primero, creamos una funcion cualquiera, OJO luego de terminar la funcion, debemos colocar exit con ello evitaremos resultados extraños en las respuestas del servidor…

function holamundo_ajax(){
 if (isset($_POST['variable_recibida'])){
 echo $_POST['variable_recibida'];
 }
 exit;
}

Segundo, registramos ésta funcion con el método add_action(); el primer parámetro determina el nombre de la funcion recibida como variable ajax, en este caso wp_ajax_hola_mundo, lo cual el parametro enviado por javascript será hola_mundo, el segundo parámetro indica la funcion a ejecutarse, como ya sabemos, será “holamundo_ajax

add_action("wp_ajax_hola_mundo", "holamundo_ajax"); //holamundo_ajax es nuestra funcion creada

Tercero, hacemos la llamada desde jQuery (si, wordpress trabaja bastante con ésta biblioteca js); de la siguiente manera

 url_action = "admin-ajax.php"; //la ruta donde se encuentre el archivo admin-ajax.php
 jQuery.post( url_action ,  { action:"hola_mundo",variable_recibida:"Algo" } ,function(data){
     alert(data);
 });

Listo! el archivo “admin-ajax.php” se encuentra en la carpeta /wp-admin/, en este ejemplo no pusimos la ruta hacia el archivo, solo el nombre del archivo.

Aquí hay más informacion (en inglés):

http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/

Tienes dudas? comenta!


Leave a Reply