#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'
}
});
Na linha "add_action( 'wp_ajax_ajax_minha_funcao', 'minha_funcao');" a palavra "ajax" aparece duas vezes impedindo o código de funcionar para users logados, fora isso, muito obrigado pelo código