Utilizando os custom_fields no WordPress
Olá caros colegas! Este é o meu primeiro artigo no blog do +tráfego. Para quem eventualmente não me conheço, e muito rapidamente, sou o Bruno Sousa (conhecido online como bfms), tenho 20 anos, estou a tirar licenciatura em Tecnologias da Informação e Comunicação e nos últimos 4 anos tenho-me dedicado ao WordPress e mais concretamente na criação de templates customizados. Estou a alguns dias de lançar o meu website pessoal que estará disponível em http://www.bfmswebdesign.com onde poderão ver alguns dos meus trabalhos.
Mas vamos ao que interessa, à utilização dos custom_fields no WordPress!
O WordPress, como a maioria de vocês deve saber, deixou há muito tempo de ser visto como uma plataforma simples de blogging. Actualmente é possível fazer com o WordPress várias aplicações, consoante o contexto e objectivo de um site. Sendo então que é visto como um CMS normal, capaz de efectuar quase tudo o que o seu utilizador desejar.
Podemos fazer com que o WordPress seja um simples blog, um portal, uma loja online e utilizar uma variância de aplicações no template para o tornar mais único, mais pessoal. Para tal existem, por exemplo, os custom_fields.
O que são os custom_fields?
Ao escrever um post ou ao criar uma página no WordPress, encontra-se mais abaixo do conteúdo desse post/página a zona de custom fields, ou em português, campos personalizados.
Estes campos personalizados (utilizaremos esta designação a partir de agora neste artigo), permitem que num post ou página sejam adicionadas outras informações para além do típico conteúdo do artigo. Certamente poderemos igualmente personalizar o conteúdo do artigo com tabelas, imagens e outros conteúdos… mas existe uma forma de simplificar isso.
Vamos supor que vou criar um site sobre Cinema. Ora um site sobre cinema que terá como conteúdos a listagem de filmes no cinema a cada semana.
Vou organizar então o meu conteúdo da seguinte forma:
- Capa do Filme;
- Sinopse;
- Actores;
- Classe etária
- Tipo de filme;
- Horário;
- Sala;
- Cinema;
- Trailer
Como já foi referido acima, posso simplesmente organizar esta informação num artigo, através da zona de escrita do conteúdo… mas terei que “decorar” a estrutura que utilizo no primeiro filme, de forma a adoptar esse estilos para todos os filmes.
Mas e não há uma outra solução para isso?
Há! Volto a referir a palavra mágica: campos personalizados!

Como podem ver na imagem acima, desenhei como seria a minha página de consulta de um determinado filme. Através dessa imagem podem ver que a informação está bem organizada e faz sentido que assim seja (numa óptica comum do utilizador). Ou seja, primeiro há que dar destaque à capa do filme e respectivo título, depois há que mostrar ao utilizador as informações desse filme.
Alterar o template de forma a que os campos personalizados funcionem
Para que tudo o que está acima desenhado comece a funcionar, é preciso efectuar alguns passos, sendo eles:
1- Criar um novo post e na zona dos campos personalizados criar os seguintes campos
capa_filme – url da imagem da capa (neste caso é recomendada uma imagem com dimensões pré-definidas, ou seja, utilizem sempre o mesmo tamanho na imagem da capa, fazendo o upload da mesma de forma a obterem o url)
nome_filme – título do filme
sinopse_filme – sinopse do filme
actores_filme - lista de actores que participam no filme
classe_filme – classe etário do filme
cinema_filme – nome do cinema em que o filme está em exibição
sala_filme - número da sala
horario_filme – horário ou os vários horários (ex: 14h30 / 18h45)
trailer_filme – código embed do Youtube
Os valores destes campos serão o que se encontra à frente de cada um descrito.
2- “Chamar” cada campo personalizado para ser mostrado no single.php (note-se que o meu site é apenas dedicado ao cinema, logo o meu single.php (página responsável por mostrar o conteúdo de um post), terá sempre a mesma estrutura).
Neste caso teremos que editar totalmente o site com o respectivo CSS/divs para que fique com a estrutura acima. Isso deixo a vosso cargo, de qualquer maneira vou criar uma pequena simulação de como seria esse código.
<div class="capa"><?php $key="capa_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="nome"><?php $key="nome_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="sinopse"><?php $key="sinopse_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="actores"><?php $key="actores_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="classe"><?php $key="classe_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="cinema"><?php $key="cinema_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="sala"><?php $key="sala_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="horario"><?php $key="horario_filme"; echo get_post_meta($post->ID, $key, true); ?></div> <div class="trailer"><?php $key="trailer_filme"; echo get_post_meta($post->ID, $key, true); ?></div>
No exemplo acima já podemos ver então as respectivas divs (obviamente falta-lhe o css), e o “short code” que devemos utilizar de forma a apresentar o conteúdo do nosso campo personalizado.
Estas “short codes” devem estar no loop do wordpress. Esta aplicação está optimizada para o site sobre cinema, no entanto como poderão aplicar a qualquer outro tema, a base é sempre esta:
<?php $key="<span style="color: #ff6600;">NOME_CAMPO_PERSONALIZADO</span>"; echo get_post_meta($post->ID, $key, true); ?>
Note-se que o nome do campo personalizado não deverá ter espaços
Como isto ficaria estando todos os campos preenchidos correctamente
E voilá, cá temos o nosso WordPress site dedicado a filmes, onde o conteúdo mostrado é diferente do “normal”. Num artigo dito normal não teríamos provavelmente esta estrutura. Quem diz esta diz outra qualquer a vosso gosto, esta é meramente um exemplo do que poderá ser feito.
Espero que tenham gostado deste meu primeiro artigo aqui no +tráfego sobre WordPress. Certamente os meus próximo artigos serão igualmente relacionados com este CMS e por isso deixo-vos uma questão: O que gostariam que abordasse no próximo artigo?
Partilhe:
26 Comentários
Reacções por essa web fora:
- Nuno
- RicardoR
- mais blogs
- Jerson Wanderley
- Ricardo Freitas
- Puta da Loucura
- Daniel Teixeira
- Custom fields (campos personalizados) para link ou imagem | Ricardo Raimundo
- Page Template ou Modelo em Wordpress - Mais Tráfego



Boas,
Parabéns pelo o post e continuação de bom trabalho!
Por vezes, encontramos certos posts que parecem pedidos. lol Estava já há uns dias para questionar no fórum como colocar um link de fonte via custom fields e et vóila… eis que aparece este post.
Se possível responderes aqui, gostava que me esclarecesses uma dúvida:
- Como crio um custom field com link?
Por exemplo:
- o valor do custom field é um link (http://qualquercoisa.com)
- E no single.php quero que apareça o texto linkável “Fonte”
Fiz-me entender? Como faço isto?
Cumprimentos e continuação de bom trabalho!
Vão-me desculpar o duplo comentário mas é só para informar que já resolvi o ‘imbróglio’. :)
Portanto, fica assim (custom field link):
- Código no single.php: <a href="ID, “link”, true); ?>”>Fonte
- Onde está link é a ‘key’ (nome) do custom field, depois basta acrescentar o link no ‘value’ (valor).
- Exemplo: http://ricardoraimundo.com/wp-content/uploads/2010/11/custom_fields.png
Olá Ricardo,
Obrigado pelo teu comentário.
Quanto ao que solicitaste é completamente possível. Nunca experimentei como fizeste mas há outra solução.
Por exemplo, queres que abaixo do te seja mostrada a fonte, certo?
<a href="ID, $key, true); ?>”>Fonte
Assim penso que também dará.
Nos comentários não dá para colocar php por isso o teu comentário parecia “errado”. Mas está certo, é isso mesmo :)
@bfms
Yep, não dá para colocar php nos comentários. :)
Escrevi sobre isto no meu blogue, ver aqui: http://ricardoraimundo.com/2010/11/custom-fields-campos-personalizados-para-link/
Obrigado e cumprimentos,
Ricardo
Óptimo artigo. Explica de forma muito simples como usar esta funcionalidade poderosa do wordpress. Para o próximo sugiro um deste género sobre custom post types :D
Muito bom parabéns! ;)
Grande artigo, está bem explicito, bom trabalho ;)
O próximo tem que ser sobre os custom posts types :)
Excelente artigo bfms. A simplicidade de como explicas potencial e de como utilizar os campos personalizados irá ajudar muitos. Melhor não se poderia pedir.
E reforço o que já foi pedido em cima, para o próximo artigo ser sobre os custom posts types
Obrigado Fernando :) Fica atento ao +t, vais gostar do próximo artigo.
Aos restantes que comentaram o meu Obrigado e fiquem atentos aos próximos artigos ;)
Excelente e completíssimo artigo, parabéns. Eu pergunto-me no entanto se tudo o que fazes com custom fields (e apenas no que toca ao exemplo acima), não se resolvia de maneira mais elegante e future proof com Custom Post Types (que aliás se deviam chamar Custom Content Types).
Permitem-te criar o tipo de conteúdo estruturado que estás a implementar com os campos, mas com a significativa diferença de tornarem a manutenção infinitamente mais simples para quem tem que gerir o conteúdo.
Olá Zé, obrigado pelo teu comentário.
Exacto, no meu próximo artigo falo sobre essa questão. Talvez seja importante começar com o que se podia fazer antes de surgir a nova e actual versão do WP.
;)
Muito útil.
; )
Obrigado. Qualquer dúvida estás à vontade ;)
Bem legal Gostei! :D
Bom dia amigos, eu gostaria de tirar uma dúvida que estou tentando solucionar a dias, porém sem sucesso, lá vai:
Ex: Eu tenho um campo personalizado chamado feature, e estou usando ele para imagens, lá no campo personalizado eu coloco certinho nome: feature value: o link da imagem, ela aparece e tudo mais, só que eu quero saber “como eu faço para linkar essa imagem para um link externo”. Muito obrigado pela atenção, fico no aguardo, fiquem na paz ;)