Campos personalizados no WordPress(Custom Fields)

Muitos dos usuários do wordpress já utilizaram ou vão utilizar algum dia os campos personalizados do wordpress.
O dados dos campos são enviados para a tabela , wp_postmeta aonde a cada requisição do wordpress , seja para salvar, ou criar um novo post ela é inserida.
Veja abaixo o diagrama do banco de dados do wordpress.
![]()
Acima temos a tabela wp_postmeta e wp_posts, que são relacionadas atravez do post_id na tabela wp_postmeta.
Os mesmos podem ser recuperados facilmente.
<?php
//No exemplo vou buscar uma categoria especifica das postagens para colocar em destaque a imagem..
$destaque = new WP_Query("cat=3&showposts=1&orderby=rand");
if ($destaque->have_posts() ) : $destaque->the_post();
//pega a imagem de destaque enviada
$image = get_post_meta($post->ID, 'destaque', true);
?>
<img src=”<?php echo $image;?>”/>
<?php
else:
_e("Desculpa , nenhum post cadastrado!"”);
endif;
?>
Temos o função get_post_meta() que é responsável por buscar dentro da tabela wp_postmeta o destaque.
Na função vemos como primeiro paramento $post->ID que é o id armazenado automaticamente como uma variável do objeto post também instanciado automaticamente a cada requisição ao banco de dados.
É bem simples seu uso, mais já ajuda bastante para desenvolver temas personalizados para o wordpress.
Bom é isso até mais abraços
- Desenvolvimento WordPress – Tema – Estruturando
- Desenvolvimento WordPress – Tema
- Desenvolvimento WordPress – Tema – Sidebar e Footer
- Sloodle
- Desenvolvimento com o wordpress.
Murilo
Web Developer Sênior, trabalha como Consultor em SEM(SEO + PPC) e Web Analytics para várias empresas , mantém diversos projetos na internet. Siga o Murilo no twitter @murilosl

November 14, 2009
Obrigado amigo, foi de grande ajuda (y)
January 24, 2010
Olá Murilo, estou precisando de uma grande ajuda.
Como faço p/ inserir as informações de biografia do autor do post no final dele através de campo personalizado?
Acontece que quero que as informações de do autor aparecam apenas nos posts que eu desejar e não em todos.
Consegui o código abaixo mas não está funcionando, apenas mostra o estilo e o nome “About”.
Você poderia me ajudar por favor.???
—–
ID, $key, true); //retorna o que tem no cf
if ($prev_value != '') { // caso cf não esteja vazio
echo "
About
";
echo $prev_value; // mostra o conteudo do cf
}
?>
January 24, 2010
Olá Levy,
Inseri no arquivo single.php , depois de the_content(); o seguinte:
echo get_avatar( get_the_author_id(), $size = '96', $default = '
?>
< ?php the_author(); ?> < ?php the_author_lastname();?>
< ?php the_author_description(); ?>
Abraço
January 24, 2010
Murilo, já fiz isto. Mas agora queria poder fazer com que as informações do autor só apareçam no post que eu determinar e não em todos os posts.
Tava tentando usar um código “if” mas como não sou programador, não sei alterar para que funcione…
Me ensina como colocar todo o código aqui nos comentários como você fez(inseri normalmente mas só aparece uma parte) que eu te mando o código que estou tentando usar…
Obrigado mais uma vez…
January 24, 2010
Olá,
Tem que fazer um if para verificar se está disponivel, pode usar o if(get_post_meta($post->ID, ‘autor’, true)){
echo “Informações do autor”;
}
Abraço
March 11, 2010
To querendo usar o WordPress para fazer o fichamento dos livros que leio, assim quero criar uma “categoria chamada livros” e cada post seria sinopse do livro juntamente com os dados “bibliográficos: autor, editor, ISBN e etc” que ficariam nos Custom Fields, só que não sei como exibir Custom Fields, já vi em vários lugares que devo usar num “loop”
Personalidade: happy
Metereologia: fine
get_post_meta($post_id, $key, $single)
só que não sei qual arquivo php devo editar ou memos em que lugar devo inserir o código para exibir essas informações.
Se puder dar uma força ficarei muito grato.
April 15, 2010
Ola Murilo,
Gostei muito das dicas sobre os custom fields, estava procurando algo para me facilitar a vida nos posts do WordPress.
A cada post tenho que entrar manualmente um custom fields que mostra uma imagem, sei que deve haver uma forma de eu fazer isso automaticamente, ou seja o CF já aparecer automaticamente, mas ainda não consegui descobrir onde faço isso.
Poderia me ajudar ?
Grato pela atenção,
Divino Leitão
April 15, 2010
Olá Divino,
Eles aparecem sozinho por padrão, basta colocar o nome que deseja para depois recuperar via programação.
Abs