Adicionar novo campo no formulário dos comentários no wordpress

Ultimamente estou trabalhando bastante com wordpress. E umas das coisas que gosto do wordpress é o poder de customização dele. Eu precisei personalizar o formulário de comentários adicionando novos campos a ele. Então nesse tutorial irei mostrar como proceder para fazer essa adição.

Vamos adicionar um campo para as pessoas deixarem o endereço do seu twitter.

Vá ao arquivo functions.php do seu tema , será nele que realizaremos todo o processo.

Primeiro vamos adicionar um novo campo no formulário, e para isso, usaremos uma função do wordpress chamado add_filter , com ela podemos modificar valores antes de ser inseridos no banco de dados, ou enviá-lo ao navegador. Criaremos uma função, e atribuiremos a add_filter, dizendo o nome do filtro que iremos utilizar.

[php]
<?php
/**
* Criamos uma função para adicionar um novo campo
* Utilizamos um array, para atribui esse campo
* e dizemos se queremos adicionar ele depois de uma campo.
* No nosso caso, depois do campo url
*/
function adiciona_campo_comentario(){
$valor = ‘<p class="comment-form-twitter">’;
$valor .= ‘<label for="twitter">Twitter</label>’;
$valor .= ‘@<input id="twitter" name="twitter" size="30" type="text" />’;
$valor .= ‘</p>’;
$campo[‘fields’][‘url’] = $valor;
return $campo;
}

/**
* Vamos agora atribuir nossa função para add_filter.
* E o filter que utilizaremos será o comment_form_defaults
*/
add_filter( ‘comment_form_defaults’, ‘adiciona_campo_comentario’);
[/php]

Já adicionamos um novo campo, agora precisamos salvar essa informação no banco de dados. E para isso utilizaremos duas funções:   add_comment_meta, que irá adicionar um campo e o valor na tabela wp_commentmet , e a add_action que executa uma função em um momento especifico, ou quando ocorre algum evento. A nossa ação em si, seria quando for acionado o formulário de comentários

[php]
/**
* Criamos uma função para salvar o novo campos do comentário.
* E para isso precisamos passar por parametro o $comment_id, para informar
* de que comentário ele pertence.
* E utilizaremos uma outra função do wordpress, que é o add_comment_meta
* Ele recebe com parametro :
* $comment_id => id do comentario especificio
* $meta_key => o nome do campo que iremos adicionar
* meta_value => o valor do novo campo
*
*/
function salvar_campo_comentario($comment_id){
$twitter = strip_tags(trim($_POST[‘twitter’]));
add_comment_meta( $comment_id, ‘twitter’, $twitter);
}

/**
* Vamos agora atribuir essa função acima para add_action
* que irá executa e um determinado momento.
* E para informar em que momento , utilizando o valor comment_post
*/

add_action( ‘comment_post’, ‘salvar_campo_comentario’ );
[/php]

Veja que com muita facilidade adicionamos um novo campo e salvamos essa informação. E para recuperar esse valor, basta utilizar a função do wordpress  get_comment_meta.:

[php]
get_comment_meta($comment->comment_ID, ‘twitter’, true ))
[/php]

No próximo tutorial mostrarei como listar os comentários mais recentes, e recuperaremos esse novo campo criado. Até a próxima.

 

11 thoughts on “Adicionar novo campo no formulário dos comentários no wordpress

  1. Olá David,
    estou com uma dúvida, não especificamente deste tutorial, mas sim sobre o wordpress. Estou fazendo um layout, e quero colocar os posts do wordpress no meu layout, e nao nos temas existentes. Poderia me ajudar ?

        1. Então, pra isso vc precisa pegar seu layout html e css, e transformar ele em tema pra wordpress, onde vc pode decidir aonde será exibidos os posts.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *