Desenvolvedor web e guru wordpress. PHP, Javascript, Xhtml, CSS e tudo relacionado a Web 2.0
Pouca gente conhece o poder dos custom fields; a maioria nem sabe pra que serve. Pois saiba que este recurso poderoso do Wordpress pode transformar o seu simples blog em um CMS completo.
Os custom fields também são chamados de meta-data; informações complementares sobre o seu post. O princípio básico de um cf (daqui pra frente vou referenciar custom fields assim) é que ele possui um valor armazenado em uma propriedade/campo/nome, assim como uma coluna de um banco de dados. Na prática, significa que você pode criar um novo campo para o seu post, e dar a ele o valor que você quiser.
Por exemplo: digamos que você queira inserir no seu post sobre uma pizzaria da sua cidade o endereço da pizzaria. Seria fácil inserir esse endereço no corpo do post, mas dessa forma você não poderia dar uma formatação diferenciada e nem recuperar apenas este campo para referências futuras. Usando cf, você apenas escreveria um nome para o campo (por exemplo, “endereco”) e um valor (”Avenida Wordpress, 2455″), dessa forma:

E esta operação pode ser repetida para quantas informações você quiser, sem nenhum limite.
RECUPERANDO CF
Mas só isso não garante que essa informação será inserida junto ao post. É necessário inserir em seu tema uma template tag do WP responsável por “chamar” o cf para junto do post. Existem duas delas.
A primeira é a the_meta(). Ao inserir essa template tag (por exemplo, no arquivo single.php, dentro do loop) serão exibidos todos os cf do post em uma lista não ordenada (ul), dessa forma:
<ul class="post-meta">
<li><span class="post-meta-key">Endereço:</span> Avenida Wordpress, 2455</li>
<li><span class="post-meta-key">Melhor sabor:</span> Calabresa</li>
</ul>Nesse exemplo, inserimos dois cf no post. Os mesmos são exibidos na lista, em qualquer quantidade que você inserir no post. Usando as classes que são criadas, você pode mudar o visual dessa lista dentro do post.
A outra função usada para inserir cf no post é a get_post_meta(). Ela requer 3 parâmetros:
get_post_meta($post_id, $key, $single);
Logo, para fazer a chamada de apenas um cf, usando o exemplo já mostrado:
Endereço da Pizzaria: <?php $key="endereco"; echo get_post_meta($post->ID, $key, true); ?>
E é simples assim. Mas pra que você iria usar isso?
Existem, claro, muitas outras formas de uso; basta observar a sua necessidade.
MORE FIELDS, A REVOLUÇÃO
O plugin More fields permite criar um novo painel dentro da sua área de postagem para a inserção de cf. O painel pode ter um título, e você pode escolher se ele fica na barra lateral ou abaixo do post, junto de “categorias”, “pingback” etc…
Depois de criar o painel, você adiciona os campos, que são os mesmo campos de custom fields, com a diferença de que não é preciso digitar o nome/valor, apenas o valor do campo, pois o nome sempre vai ficar visível.
Dá pra criar textfield, select box, textarea, option button e outros campos comuns de formulários, de forma a dar apenas opções limitadas ao utilizador, evitando respostas erradas.
Por exemplo: digamos que você criou algo lá no seu blog que mostra “sim” ou não” para um post. No modo tradicional, todas vez que você fosse criar um post, teria que escolher no combo box o nome do custom field (”opcao_post”, digamos) e DIGITAR o valor (”s” ou “n”). Usando o plugin, você cria esse painel e dá o nome do campo (”opcao_post”), o nome para EXIBIÇÃO (”Escolha uma opção”) e o tipo do campo. Nesse caso você poderia fazer por check box, para checar valores booleanos. Nesse caso específico, ele vai retornar “on” ou “off” na tabela post_meta do WP.
Depois é só tratar os valores no código com get_post_meta().
Esse é um exemplo do painel do More fields que usamos no Jornal A TRIBUNA:

E este é um exemplo de como o painel fica na área de escrita do post:

Acredite: esse painel facilidade e MUITO a operação de inclusão/alteração de custom fields. E quebra um galho para o desenvolvedor, que pode incluir isso em seu projeto e entregar para o cliente algo com bastante usabilidade, sem que ele dependa de ficar “escrevendo” o nome para cada cf existente.
Obrigado ao Carlos, que deu a dica para a escrita desse post.
Carlos Henrique
29 jul, 2008
Hehehe, estava esperando esse post aparecer!
Complementou várias coias que não sabia. Vlw!
Farley Rangel
31 jul, 2008
Muito bom ter encontrado seu site através do google. Uso o WP faz tempo, e tenho interesse em trabalhar mais nele. Seu link já está guardado para acompanhar os artigos.
Estou precisando criar campos para montar uma espécie de banco de dados. Creio que seu artigo seja útil neste caso. Mas, preciso que tudo fique fora do google e tenha acesso restrito. Acho que usando o htaccess dá pra resolver isso. O que acha?
Carlos
1 ago, 2008
Maikel, e como listar, por exemplo, os útlimos 5 posts marcados com uma determinada custom field?
Há como faze isso?
Nossa, eu tenho que aprender php mais a fundo…
Maikel Neris
2 ago, 2008
@ Carlos
Eu já tentei com custom fields e desisti, prefiro usar com categorias.
Mas se você quiser tentar, você teria que fazer uma query na tabela wp_post_meta pela cf que você buscar, e retornar todos os ids dos posts em um array (com LIMIT 5). Depois é só imprimir esse array em um parâmetro dentro de get_posts().
Anizio Carlos da Silva
7 ago, 2008
Oi Maikel, de vez em quando leio suas dicas lá na comunidade do Wordpress no orkut e só agora vi seu site - e ainda tem gente que acha que orkut é coisa de menino(a) babão(ona).
Esse plugin é uma verdadeira revolução no modo de usar as Custom Fields do Wordpress, até quem tem um conhecimento mais ou menos superficial de PHP pode instalar e usar. Acho que em português, só o seu blog ensina o uso desse plugin (ainda bem que leio ingrêis).
Um abraço.
Rapidinhas da semana | pBlog
9 ago, 2008
[...] Aprenda a utilizar Custom Fields - Tutorial feito por Maikel Neris explicando o uso e as vantagens de se utilizar os Custom Fields. Destaque para o plugin More fields. [...]
Passageirodealgumtrem
11 ago, 2008
Mais um detalhe importantíssimo: a facilidade de se imbutir metas com formatação sendo respeitada; o More fields, ganhou lugar na minha galeria de plugins preferidos, pela facilidade de se inserir dados formatados, respeitando a quebra de linha, coisa um pouco mais complexa se for criar campos meta no wordpress “na raça”; é o plugin inteligente para fazer de um blog, um CMS superorganizado. Só seu blog eu achei com explicações boas em português, e como lí antes, esse plugin permite pessoas sem conhecimento específico de bd, usar e abusar das metas, com a sua explicação. Parabéns, ótimo blog.
Mais dicas para usar o WP como CMS | Maikel Neris - guru Wordpress (título auto proclamado)
14 ago, 2008
[...] o plugin More Fields (não vou dizer mais nada; leia o [...]
Jennifer
14 ago, 2008
Eu tinha feito um tutorial para custom fields, mas só o basicão, praticamente uma tradução do que tem lá no site do Wordpress. Este que você fez é exatamente o que eu estava precisando…
Globo.com é inspiração pura | Maikel Neris - guru Wordpress (título auto proclamado)
23 ago, 2008
[...] o uso de custom fields, criando assim uma forma legal de usar quadros, links para downloads e várias outras coisas para [...]
Daniel
17 set, 2008
Obrigado Maikel pelas explicações. Tô precisando alterar todas as “Keys” em lote, como faço?
exemplo, tenho muitos posts já salvos com a Key = featured-image, e preciso alterar para Key=thumbnail
ps; seus trabalhos são bem bacanas. Vai disponibilizar algum tema?
Crie um slideshow com destaques de seu blog | Maikel Neris - guru Wordpress (título auto proclamado)
3 out, 2008
[...] de uma imagem (pode ser pelo painel de escrever) e copie sua url; agora insira esta url como um custom field - o nome da chave deve ser “articleimg” (sem aspas) e o valor é a url que você copiou [...]
Diego Lopes
5 out, 2008
e um plugin para adicionar informações junto ao subscriber do users, vc saberia me dizer? tipo, lá só tem nome email e senha, queria colocar tb profissão e etc…
Maikel Neris
5 out, 2008
Você pode usar esse plugin para adicionar novos campos para usuários: http://wordpress.org/extend/plugins/register-plus/
Diego Lopes
18 nov, 2008
Kra antes eu tinha lido isso mas n tinha dado muita bola pq ainda estava mio cru, mas agora q precisei reli e achei o máximo. Ah e por estes dias eu vou tentar vender meu primeiro site feito com wordpress, se conseguir mando uma gratificação pra ok!? e num tem um plugin para ao invéz do cliente ter q digitar o caminho do thumbnail ele fazer um upload?
Maikel Neris
18 nov, 2008
Tem um plugin que pega o caminho da primeira imagem enviada pelo uploader; dessa forma não há necessidade de “copiar e colar” o caminho em outra caixa. Vou lembrar aqui qual é e te passo.