Skip to content

Instantly share code, notes, and snippets.

@samuelsimoes
Created June 28, 2012 14:19
Show Gist options
  • Save samuelsimoes/3011642 to your computer and use it in GitHub Desktop.
Save samuelsimoes/3011642 to your computer and use it in GitHub Desktop.
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'
	}
});
@JosimarCamargo
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment