Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

pt-br:Campos Personalizados


cb-help.png
Ajuda ao Usuário WordPress
Referência da Ajuda Contextual - Este artigo é acessado a partir da Ajuda Contextual do WordPress PT-BR.
Procure nosso Fórum Oficial se precisar de mais ajuda sobre este assunto.
cb-help.png
Artigo parcialmente traduzido ou que precisa de tradução
Este documento está parcialmente traduzido ou precisa ser traduzido. Toda a tradução é feita por voluntários e você pode ser um deles.
ParticiparArtigos para traduzirFórum de SuporteTodos os Artigos

WordPress tem a capacidade de permitir aos autores atribuirem campos personalizados a uma postagem. Esta informação extra é conhecida como meta-dados. Meta-dados podem ser pequenas informações que se refere ao tempo da publicação por exemplo:

  • Humor: Feliz
  • Lendo: O Alienista
  • Ouvindo: Samba de uma nota só
  • Clima: Quente e úmido

Com algum código extra, é possível fazer ações mais complexas, como o uso de meta-dados para armazenar uma data de expiração para a postagem.

Os Meta-dados são compostos de uma chave e um valor. A Chave é o nome do elemento de meta-dados. E Valor é a informação que vai aparecer na lista de meta-dados em cada postagem individual a que tal informação está associada.

Chaves podem ser usadas mais de uma vez na mesma postagem. Por exemplo, se você estava lendo dois livros diferentes (talvez um livro técnico de trabalho e uma ficção em casa), você pode criar uma Chave leitura e usá-la duas vezes no mesmo lugar, uma para cada livro.

Aqui está um exemplo de como a informação aparecerá em sua postagem:

O título da postagem: O Tucano
14/01/2011 - Categoria: Aves - 2 Comentários


tuca.jpg
São designadas por tucano as aves da família Ramphastidae que vivem nas florestas da América Central e América do Sul. Esta ave tem origem nas florestas tropicais da América Central e do Sul, sobretudo na Amazônia. É possível encontrá-lo num vasto território, que vai até ao Norte da Argentina, até porque existem várias espécies desta ave ao longo desta área, e a todos se dão o correntemente o mesmo nome.

Apesar de grande, forte e poderoso, o seu bico não é pesado, já que é formado por uma estrutura óssea alvéolar, que o torna leve, não tendo qualquer interferência no seu vôo. O bico serve, sobretudo, para agarrar e descascar frutos que encontra nas árvores e que são a base da sua alimentação, e para agarrar pequenos répteis, que também gosta de comer.

Começa a causar alguma preocupação entre os biólogos o facto de ter vindo a ser capturado para fins comerciais com muita intensidade, o que levou ao seu desaparecimento em algumas áreas. Apesar disso, presume-se estar longe da extinção.


Lendo: O Alienista
Ouvindo: Samba de uma nota só

Esta postagem foi publicada em 14/01/2011 na Categoria Aves. Comente e assine o RSS dos comentários.

Tags: aves, amazonas, Brasil

Uso

Com base em nosso exemplo acima, vamos colocar isso em ação. Vamos adicionar dois campos personalizados, um chamado lendo e outro ouvindo. As instruções a seguir irá demonstrar como adicionar essas informações a um post usando Campos Personalizados.

  1. Depois de ter escrito sua postagem, logo abaixo do campo de edição há uma caixa Campos Personalizados.
  2. Para criar um novo Campo Personalizado chamado lendo, digite o texto "lendo" (sem as aspas) no campo Chave.
  3. O recém-criado campo, deve ter um valor, que no nosso caso é o nome do livro, em Valor escreva então O Alienista
  4. Clique no botão Adicionar Campo Personalizado para guardar esta informação para esse post.

Para adicionar a informação ouvindo, repita os passos acima. O nome da Chave agora deve ser ouvindo e o Valor deve ser a tal música.

Você só cria Chaves uma vez só, ou seja, no próxima postagem que for adicionar tais informações, você só precisa escolher a Chave que criou e informar o novo Valor.

Mostrando Campos Personalizados

Com um campo personalizado adicionado ao post, é hora de exibir seus campos para o mundo. Para exibir os campos personalizados para cada post, use o the_meta().

<?php the_meta(); ?>

A marca deve ser colocada dentro do Loop para que funcione. Muitas pessoas adicionam a tag the_meta() como mostrado no exemplo, logo acima das informações da postagem. O código da página mostrará um HTML comum:

<ul class='post-meta'>
<li><span class='post-meta-key'>Livro:</span> O Alienista</li>
<li><span class='post-meta-key'>Ouvindo:</span> Samba de uma nota só</li>
</ul>

A tag de modelo coloca automaticamente todo os meta-dados em uma classe CSS chamada post-meta. A Chave está em um span chamado post-meta-key então poderá estilizar seus dados na folha de estilos. Tudo é mostrado em uma lista comum.

Para personalizar a aparência da lista, adicone a formatação a sua folha de estilo. Por exemplo, vamos adicionar algum estilo ao nosso exemplo de cima. Os elementos da folha de estilo ficam assim:

.post-meta {font-variant: small-caps; color: blue; }
.post-meta-key {color: green; font-weight: bold; font-size: 110%; }
  • Livro: O Alienista
  • Ouvindo: Samba de uma nota só


Há ainda plugins variados no Repositória Oficial de Plugin que permitem várias outras formatações e recursos.

cb-warning.png
Artigo ou Seção com explicações avançadas
A seguir, estão explicações ou instruções para usuários avançados, o que pode exigir o conhecimento de termos e ferramentas não comuns a todas as pessoas.
Adicione {{Avançado}} para usar esta caixa.

Referência de Função

Nota: a documentação sobre estas funções ainda estão em inglês.

Add, Update, Delete
Get Custom Values/Keys
Template Tags

Técnicas avançadas para Campos Personalizados

A seguir estão as técnicas mais avançadas para obtenção e personalização de meta-dados e Campos Personalizados.

Obtendo Campos Personalizados Específicos

Para buscar valores meta usar a função the_meta():

<?php get_post_meta($post_id, $key, $single); ?>
  • $post_id o ID da postagem. Use $post->ID para obter o ID da postagem atual dentro do escopo de $post variable. Ou get_the_ID() se for dentro do Loop.
  • $key nome do meta-valor que se quer obter.
  • $single pode ser true ou false. Se definido como true, então a função retornará um único resultado em string. Se false, ou não definido, então a função retorna um array dos campos personalizados.

Detalhes de Implementação

As informações meta da postagem são armazenadas em uma nova tabela, $wpdb->postmeta. Esta tabela possui quatro campos:

meta_id - ID único para cada postagem.
post_id - ID da postagem para este meta-dado.
meta_key - Nome da chave.
meta_value - Valor da chave.

Os valores desta tabela são puxados em um array multi-dimensional estruturado chamado de $post_meta_cache, logo após o array $posts é buscado em wp-blog-header.php. Esta variável irá conter apenas os valores para a lista de posts buscados para a construção da página atual. A estrutura do array será algo parecido com isto:

[
	postid1 => [
		key1 => [ val1, val2, ... ],
		key2 => [ val1, val2, ... ],
		...
	],
	postid2 => [
		key1 => [ val1, val2, ... ],
		key2 => [ val1, val2, ... ],
		...
	],
	...
]

Então, se você quuiser buscar os valores "leitura" do post número 256, você usa esse código PHP:

// Buscar uma array de valores:
$readinglist = $post_meta_cache[256]['reading'];

Nota: Não se esqueça que $readinglist será um array, não um único valor.

PostMeta Functions

Internal Functions

These functions are intended for use inside The Loop, and all return arrays.

get_post_custom()
Get all key/value data for the current post.
get_post_custom_keys()
Get a list of all key names for the current post.
get_post_custom_values($key)
Get the list of values for a particular key on the current post.
get_post_meta($post_id, $key, $single = false)
In WP 1.5 and beyond, this function returns the meta information without cache problems. The function requires the post id, the key, and if $single is set to TRUE, it returns only the first result (NOT as an array) for PHP use.
This will output the resulting meta value (notice the addition of "echo"):
<?php $key="mykey"; echo get_post_meta($post->ID, $key, true); ?>

Template Functions

At the time of this writing, there is only one template function.

the_meta()
Echoes an unordered list containing the current post's meta-data with a class for the UL as post-meta and the LI as post-meta-key.

We expect that independent developers will come up with many interesting uses for post meta-data in the form of plugins. The the_meta() template function is just an extremely basic example.

Links Externos

Páginas da Ajuda acessada nos Painéis de Administração
VE
PaineisPainel Comentários Painel Discussão Painel Escrita Painel Exportar Painel Ferramentas-Disponíveis Painel Fundo Painel Geral| Painel Importar Painel Início Painel Leitura Painel Links Permanentes Painel Mídia Painel Mídia-Adicionar Nova Painel Menus Painel Meus Sites Painel Páginas-Todas as Páginas Painel Plugins-Instalados Painel Posts-Adicionar Novo Painel Rede Painel Tags Painel Temas Painel Todos os Links Painel Usuários-Seu perfil Painel Widgets
RecursosPublique Isso Resumo Cabeçalhos PersonalizadosCampos Personalizados Formatos de Posts
Rede e MultisiteCrie uma RedeDepurando uma Rede WordPress
DesenvolvimentoAPI WordPress XML-RPC Escrevendo um Plugin Funções e Capacidades Widgets em Temas
OutrosAtalhos de Teclado Glossário Formatando Data e Hora Primeiros Passos com o WordPress Spam em Comentários Usando Links Permanentes Cookies
Warning: Default sort key "C" overrides earlier default sort key "E".