viernes, 5 de diciembre de 2014

WordPress - Realizar peticion ajax

Realizar llamadas AJAX en WordPress es muy sencillo, tenemos mil maneras, pero la que me parece mas correcta es la siguiente:
  1. En nuestro functions.php pegaremos lo siguiente:
  2. add_action('wp_ajax_nopriv_my_function', 'ajax_my_function');
    add_action('wp_ajax_my_function', 'ajax_my_function');
    function ajax_my_function(){
        //El codigo que se ejecutara en la llamada AJAX
        exit;
    }
    En donde las 2 primeras lineas declaran nuestro hook para la función AJAX, deberemos anidarla a wp_ajax_nopriv_****** si queremos que lo puedan usar los usuarios que no estén logueados, y wp_ajax_****** si queremos que la usen los que si estén logueados, para que la puedan usar todos debemos usar las 2, como en el ejemplo superior.
    A continuación escribiremos la función que queremos que se ejecute cuando hagamos la llamada AJAX.

  3. En nuestro JS tendremos algo parecido a lo siguiente:

  4. function my_function() {
        $.get( ajaxURL, {
                action: 'my_function',
        },function(data){
            document.getElementById('localidad').innerHTML=data;
        });
    }
En donde el action debe coincidir con el final del nombre que le hayamos otorgado en el functions.php, en nuestro ejemplo wp_ajax_nopriv_my_function y my_function.

Espero os sirva de ayuda