samuelsimoes
6/28/2012 - 2:19 PM

Ajax no Wordpress. Faça do jeito certo!

Ajax no Wordpress. Faça do jeito certo!

#Ajax no Wordpress

###functions.php (ou arquivo incluído)

<?php

#Registra o seu script com o seu ajax no functions.php, no meu caso samuel.js
wp_register_script('samuel', get_bloginfo('template_directory') . "/scripts/samuel.js", array('jquery'));

#Passa para o script "samuel" um objeto com a URL do admin-ajax.php, que é o receptor padrão de todas as chamadas ajax no Wordpress
wp_localize_script('samuel', 'bloginfo', array('ajaxurl' => admin_url('admin-ajax.php')));

#Carrega o script.
wp_enqueue_script('samuel');

#Ainda no functions.php (ou outro que você esteja incluindo nele) adicione sua função nos hooks do Wordpress que lidam com Ajax

#Nomenclatura dos hooks:
#wp_ajax_nopriv_O NOME DA SUA FUNCAO
#wp_ajax_ajax_O NOME DA SUA FUNCAO
add_action( 'wp_ajax_nopriv_minha_funcao', 'minha_funcao');
add_action( 'wp_ajax_ajax_minha_funcao', 'minha_funcao');

function minha_funcao(){
    return $_POST['nome'];
}
?>

###samuel.js

jQuery.ajax({
    url: bloginfo.ajaxurl,
    type: 'post',
    data: {
        // você sempre deve passar o parâmetro 'action' com o nome da função que você criou no seu functions.php ou outro que você esteja incluindo nele
        action: 'minha_funcao',
        nome: 'Samuel Simões'
    }
});