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 /** * 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');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
/** * 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' );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.:
get_comment_meta($comment->comment_ID, 'twitter', true ))No próximo tutorial mostrarei como listar os comentários mais recentes, e recuperaremos esse novo campo criado. Até a próxima.
Isso é somente para wordpress
Romulo, esse tutorial é especifico para wordpress.
Olá David!
Para inserir um novo campo em categorias (Menu > Posts > Categorias) o método vai na mesma direção do que apresentaste aqui?
(http://pt.forums.wordpress.org/topic/novo-campo-em-cadastro-de-categorias)
Blz Vinícius . Sim, seria nessa mesma direção, aqui tem um tutorial q pode te ajudar:
http://en.bainternet.info/2011/wordpress-category-extra-fields
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 ?
Mas vc quer aprender a fazer um tema para wordpress, seria isso?
Queria Somente postar artigos pelo wordpress e que os posts ficassem eu um layout html que irei fazer. . isso seria criar um novo tema ? olha esse site http://www.radiomyway.com.br/ e ve a parte de notícias, mais ou menos assim que quero fazer.
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.
Poderia de informar como posso fazer isso ? ou algum artigo que fale sobre isso ?
É o q mais tem , dá uma olhada nesse primeiro resultado do google: http://migre.me/cGYeR
Obrigado por me ajudar. Vlw chará.