Guia Completo sobre Campos Personalizados(Custom Fields) no WordPress

175 3

Depois de um comentário do nosso leitor Gustavo no post onde ensinamos como exibir posts de um campo personalizado específico do WordPress, venho neste artigo apresentar um guia completo sobre o uso dos famosos custom fields do WordPress. Na verdade, Campos Personalizados ou Custom Fields são uma das melhores formas de extender as funcionalidades do WordPress, depois dos recém-introduzidos posts personalizados, que em conjunto são capazes de transformar o WordPress num verdadeiro Sistema de Gestão de Conteúdos, aliás, estas duas ferramentas transformam o WordPress de uma plataforma de blogging para o melhor CMS que existe actualmente.

Para que servem os campos personalizados do WordPress?

Vou responder a esta pergunta com um exemplo prático, tendo como base o problema que o Gustavo estava enfrentando no seu projecto.

Pelo que entendi, o nosso leitor, Gustavo, tinha um projecto em WordPress, onde ele ia apresentar um directório de empresas ou algo parecido, usando posts do WordPress. Neste directório, para além do nome da empresa(que pode ser o título do post), a descrição(que pode ser o post em si), ele ainda pretendia apresentar outros dados importantes, como por exemplo o número de funcionários, data de fundação da empresa, localização da empresa, nome do proprietário,etc.  Não é prático colocar isso dentro da descrição da empresa, pois não terá a visibilidade e o efeito desejado num directório do gênero. Então, é preciso encontrar uma alternativa mais viável.

Solução 1: Hackear(modificar) a tabela wp_2_posts do WordPress

A solução do Gustavo era hackear a base de dados do WordPress, acrescentando mais campos a tabela wp_2_posts. Isso é altamente perigoso e completamente desaconselhado, uma vez que sempre que o WordPress faz um upgrade ele verifica a base de dados, para ter certeza que a estrutura actual é igual a estrutura da nova versão. Não sei o que acontece se esta condição não for satisfeita, mas aconselho a nunca fazer isso!

Solução 2: Usar Campos Personalizados do WordPress

Esta é sem dúvidas a melho solução para resolver este problema. Com campos personalizados podemos incluir informações adicionais a um ou vários posts, sem ter que alterar a estrutura das tabelas do WordPress.Campos personalizados do WordPress funcionam numa base “Chave->valor”. A chave é o nome do campo personalizado e o valor é a informação que queremos acrescentar no ao post. Indo para o problema do Gustavo, poderiamos ter os seguintes campos personalizados no nosso post, para completar a informação do directório de empresas:

Chave:valor
Funcionarios:23
Fundacao:2007
Localizacao:Av. karl Max, 931, Maputo
Proprietario:Elisio Leonardo

Usando Campos Personalizados do WordPress

Funções de Refêrencia

Adicionar, Editar, Remover: add_post_meta() update_post_meta() delete_post_meta() 
Obtendo Campos Personalizados de um post: get_post_custom() get_post_custom_values() get_post_custom_keys()
Tags do Template the_meta() get_post_meta()

Baseado no problema do Gustavo, vamos mostrar a implementação de campos personalizados do WordPress, para adicionar mais detalhes nos posts de um directório de empresas. Em cada post do nosso directório adicionaremos  os quatro campos personalizados definidos acima.

  1. Depois de escrever o título e a descrição da empresa nos campos do título e do post do WordPress, role a janela para abaixo, até a área chamada “Campos Personalizados” ou Custom Fields se o seu WordPress estiver em Inglês
  2. para criar o campo personalizado para número de funcionarios, digite “Funcionario”(sem as aspas) no campo de texto reservado para Chave(Key).
  3. Agora digite o valor para este campo, que neste caso vai ser o número de funcionarios da empresa, no campo de texto ao lado, reservado para o Valor(Value)
  4. Agora, para este post, a chave número de funcionários terá o valor definido em valor.
  5. Clique no botão “Adicionar Campo Personalizado”, para que esta informação seja armazenado no post actual

Para criar os outros campos personalizados, repita este processo para as outras chaves, inserindo os respectivos valores e clicando sempre no botão para adicionar a informação ao post. A seguir você deve publicar o post ou então gravar como rascunho para que a informação seja definitivamente adicionada ao post.

Quando escrever o próximo post, você não precisará digitar novamente as chaves para os campos personalizados, pois o WordPress irá reconhecer automaticamente estes detalhes. Apenas escolha a chave desejada na lista de chaves existentes, e depois coloque o valor, sempre clicando no botão Adicionar Campo Personalizado para que está informação seja adicionada ao post. As chaves dos campos personalizados são criadas apenas uma vez, sendo que das próximas vezes o WordPress reconhece automaticamente estes detalhes.

Exibindo Campos Personalizados no seu post

Agora que temos as nossas empresas em formato de post, com os respectivos campos personalizados anexados a cada um deles, é hora de apresentar esta informação no nosso site. Para exibir os campos personalizados para cada post, você pode usar a tag the_meta() no seu template. É meio evidente que esta tag deve estar dentro do Loop para funcionar. Muitos usuários colocam esta tag no fim do post, ou na secção de informações como autor e data de publicação do post. Aqui vai um exemplo básico:

<php the_meta(); ?>

Esta tag trará o seguinte efeito no seu post:

<div>
<ul class='post-meta'>
    <li><span class='post-meta-key'>Funcionarios:</span> 23</li>
    <li><span class='post-meta-key'>Fundacao:</span> 2007</li>
    <li><span class='post-meta-key'>Localizacao:</span> Av. karl Max, 931, Maputo</li>
    <li><span class='post-meta-key'>Proprietario:</span> Elisio Leonardo</li>
</ul>
<div>
Esta tag adiciona automaticamente todos os dados num estilo CSS chamado post-meta. As chaves ficam dentro de um span chamado post-meta-key, para que você possa dar efeitos individuais a eles na sua folha de estilos. Toda essa apresentação é feita numa folha não ordenada.

Técnicas Avançadas do uso dos Campos Personalizados

Obtendo um campo personalizado específico

Para obter o valor de um campo personalizado específico use a função get_post_meta():

get_post_meta($post_id, $key, $single);

$post_id é o ID do post que você pretende obter o valor do campo personalizado.$key é uma string contendo a chave do campo que você pretende obter o valor$single é um valor que pode ser true ou false. Se for true, a função retornará um único resultado como uma string. Se for false, a função retornará um array com todos os resultados para aquela chave. É mais comum usar-se a opção true nesta função.

Estas são as formas mais comuns de se usar campos personalizados no WordPress. Não vou dar detalhes sobre outras funções para os campos personalizados, pois o básico já está dito.Caso tenha alguma dúvida ou conheça outras implementações dos campos personalizados não se esqueça de usar a secção de comentários para interagir conosco. E se desejar ajudar outros  utilizadores do WordPress, comece divulgando este post no Facebook, Twitter e outras redes sociais que você participa.

(Visited 23 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.