Agência Ênfase » Blog » WordPress » Campos personalizados no WordPress(Custom Fields)

Campos personalizados no WordPress(Custom Fields)

Posted on July 20, 2009

campos-personalizado

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

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

8 Responses

  1. Jordan Miguel
    November 14, 2009

    Obrigado amigo, foi de grande ajuda (y)


  2. Levy
    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
    }
    ?>


  3. Murilo
    January 24, 2010

    Olá Levy,

    Inseri no arquivo single.php , depois de the_content(); o seguinte:

    < ?php
    echo get_avatar( get_the_author_id(), $size = '96', $default = ' ‘ );
    ?>

    < ?php the_author(); ?> < ?php the_author_lastname();?>

    < ?php the_author_description(); ?>

    Abraço


  4. Levy
    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…


  5. Murilo
    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


  6. Heraclito
    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.


  7. Divino Leitão
    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


  8. Murilo
    April 15, 2010

    Olá Divino,

    Eles aparecem sozinho por padrão, basta colocar o nome que deseja para depois recuperar via programação.

    Abs


Leave a Reply