Entendendo melhor os campos personalizados ou custom fields

12/04/11 Wordpress 10

Um recurso muito interessante e útil do Wordpres são os campos personalizados ou custom fields. Dependendo do seu projeto este recurso pode ser muito útil. Este recurso está disponível para os posts, páginas e também nos custom post types.

Vamos dar um exemplo básico para o uso dos campos personalizados, como um site de filmes por exemplo vamos ter a categoria filmes e que cada post desta categoria será sobre um filme. Usaremos o campo título para o título do filme, o campo de conteúdo para a sinopse do filme e vamos usar os campos personalizados para os dados como:

  • Ano de produção
  • Direção
  • Classificação
  • Gênero
  • Duração

1. Após inserir os dados básicos como o título e a sinopse no campo do conteúdo  vamos cadastrar os campos personalizados.

2. Vá até a janela de inclusão dos campos personalizados que se encontra logo abaixo do campo de conteúdo do post ou página, como a imagem abaixo:

Se você não visualizar a janela dos campos personalizados basta clicar no botão opções de tela que se encontra no canto superior direito do painel do WordPress e marcar o checkbox campos personalizados.

3. Adicione os campos personalizados como no exemplo da imagem acima onde o campo nome é a chave (key) e o campo valor é claro o valor do seu campo personalizado.

4. Com todos os dados cadastrados, precisamos agora que estes dados sejam exibidos no site. Existe mais de uma forma para exibir os dados dos campos personalizados, vamos usar primeiro a forma mais simples.

5. Abra o arquivo do seu tema em que vai exibir estes dados, o mais comum seria o arquivo single.php, apos exibir o conteúdo do post dentro do loop utilizando a função the_content(), insira logo abaixo a seguinte função:

<?php the_meta(); ?>

6. Salve e visualize seu post para ver o resultado, os dados dos campos personalizados serão exibidos no formato de uma lista que podem ser facilmente estilizadas utilizando css.

A outra forma de recuperar e exibir os valores dos campos personalizados é uma forma que torna mais flexível a manipulação dos dados, podendo ser combinados com outras tags de html para serem exibidos em outros formatos ou até mesmo para serem usados simplesmente para manipular seu código php.

1. Recuperando os dados inserindo dentro de uma variável e exibindo os dados. Insira o código abaixo dentro do seu loop.

<?php $direcao = get_post_meta(get_the_ID(),utf8_encode('Direção'),true); ?>
<?php echo $direcao; ?>

A função get_post_meta() recebe três parâmetros o ID do post que recuperamos usando a função get_the_ID(),  o nome do campo personalizado (key), e o último parâmetro (single) define se o valor a ser retornado vai ser do tipo String retornando um valor ou Array retornando vários valores se tiver. No caso True ele vai retornar uma string com o valor do campo personalizado.

Importante: No exemplo acima precisei utilizar a função de php utf8_encode() porque o nome do meu campo personalizado continha caracteres especiais, se o nome do seu campo não conter caracteres especiais basta colocar o nome dele entre aspas simples.

2. Quando usar o valor False no parâmetro (single) para que seja retornado uma Array, bom um exemplo simples é se criarmos um campo personalizado (Telefone) e no seu post você inserir três telefones utilizando o campo personalizado (Telefone). Para poder exibir estes dados no seu post você teria que usar o parâmetro (single) como false para retornar uma Array com os três valores do campo (Telefone) e para exibir basta utilizar o exemplo abaixo dentro do seu loop:

<?php $tel = get_post_meta(get_the_ID(),'Telefone',false);
echo "<p>".$tel[0]."</p>";
echo "<p>".$tel[1]."</p>";
echo "<p>".$tel[2]."</p>";
?>

 

10 Comments

  1. Posted outubro 31, 2011 at 4:37 pm | Permalink

    Parabéns Mateus, pelo graaande post, pois eu estava justamente precisando encontrar uma maneira de personalisar meu wordpress através da vitrine do CorpoPerfeito usando os campos personalizados do WP. E seu foi pelo seu post que consegui fazer, veja =>> http://www.comprarprodutos.com.br/jaqueta-feminina-spry
    Valeu Mateus, obrigado pela dica!

  2. Afrânio
    Posted agosto 15, 2011 at 7:01 pm | Permalink

    Mateus. Estou precisnado de uma ajuda, será que vc pode me ajudar? Preciso inserir uma galeria nextGen em um campo personalizado. Como faço? Agradeço desde já.

    • Posted agosto 17, 2011 at 9:57 pm | Permalink

      Oi, Afranio. Nunca fiz desta forma mas você pode tentar da seguinte maneira supondo que seu campo personalizado se chame “galeria” então neste campo vc vai inseir o shortcode do nextgem como [nggallery id=2]. Agora para exibir no seu tema no seu template single.php por exemplo você vai inserir o seguinte código aonde você quer exibir a galeria

      < ?php echo do_shortcode( get_post_meta($post->ID,'galeria',true) ); ?>
  3. Posted julho 22, 2011 at 2:09 pm | Permalink

    olá amigo, quero saber pq no wordpress 3.2 a opção campos personalizados, não esta visivel na hora de editar…?

    • Mateus Neves
      Posted julho 25, 2011 at 12:05 pm | Permalink

      Yuri, nesta nova versão do WordPress, a função dos campos personallizados esta vindo escondida por padrao, para exibir ela tem na tela de um novo post tem que ir no link Opcoes de Tela no canto superior direito do painel e selecionar a opcao dos campos personalizados apra ele aparecer.

  4. Posted abril 20, 2011 at 7:00 pm | Permalink

    Acredito que a criação de meta boxes torna a administração mais prática pro cliente, o que acham?

  5. Posted abril 19, 2011 at 3:57 pm | Permalink

    Opa.. sou eu novamente!

    Encontrei essa dica abaixo, ainda não testei mas acho que vai resolver a questão que eu levantei no comentário anterior.


    Adicionando meta boxes ao WordPress

    Assim que testar eu comento novamente!

    Grande abraço!

  6. Posted abril 19, 2011 at 11:43 am | Permalink

    Também tenho a mesma dúvida do amigo Phelipp, sabemos que os campos personalizados abre um leque ainda maior de possibilidades dentro do WP, mas venhamos e convenhamos que existem clientes que não sabem utilizar. Os amigos conhecem algum tipo de plugin para facilitar o uso dos custom fields de uma maneira mais simples para o usuário final?

  7. Posted abril 12, 2011 at 5:37 pm | Permalink

    Olá Mateus, parabéns novamente!

    Para facilitar a utilização desse recurso pelos clientes, existe algum recurso/plugin que podemos usar a ponto de deixar esses campos já definidos (com um visual melhor) como o campo Título e o campo Conteúdo?

    Grande abraço!

  8. Posted abril 12, 2011 at 12:28 pm | Permalink

    Muito bom, Parabéns como sempre ótimas dicas.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>