Utilizando Ajax no wordpress

Essa dica de hoje é para mostrar para galera #soudev, como utilizar ajax nos temas do wordpress.

De acordo com a documentação do WordPress, ele recomenda que voce envie as requisições ajax para o arquivo admin-ajax.php, que fica em http://www.seusiteemwordpress.com.br/wp-admin/admin-ajax.php.

Nesse arquivo, será feita a requisição da função que você quer executar. Sendo assim, basta adicionar os hooks para que o wordpress chame a sua função quando requisitada.

Para isso, no arquivos functions.php do seu tema, adicione a sua função ajax e os hooks.

Por exemplo, adicionando hooks ajax para uma função que se chama doStuff()

function doStuff()
{
	//doSomeStuff
	die(); //Lembre sempre de finalizar a execução pois, caso contrario o wordpress retornará 0.
}
//Adiciona a funcao extra votos aos hooks ajax do WordPress.
add_action('wp_ajax_doStuff', 'doStuff');
add_action('wp_ajax_nopriv_doStuff', 'doStuff');

São usados 2 hooks, o wp_ajax_FUNÇÃO e o wp_ajax_nopriv_FUNÇÃO onde o nopriv é para que a função possa ser executada por usuários não logados,
uma vez que a outra executa somente para usuarios logados.

Esse é o “pulo do gato”, pois alem disso você precisa apenas usar uma funçãozinha ajax do jquery.

Com o jquery faça:

$.ajax({
	type: 'POST',
	url: '/wp-admin/admin-ajax.php',
	data: 'action=doStuff',
	success: function( response ){
			alert('sucesso');
			}
});

Lembrando que nos dados a serem passados, deve constar “action” e o nome da função que você deseja chamar.

Por hoje é só pessoal!
Valeu.

  • http://www.facebook.com/luisfillipematos Luis Fillipe

    sou bem leigo em ajax..eu sou dono do http://twittercomhumor.com e gostaria de colocar o mesmo efeito que o nao intendo colocou no blog dele em ajax, pra navegar entre as paginas, alguem poderia me ajudar? to lendo sobre ajax mas nao entendi nada =
    O meu blog: http://twittercomhumor.com
    O efeito que eu quero tá no http://naointendo.com.br ao navegar entre as paginas..tipo da um pra dois..e por ai vai