O que é e como usar a função get_post_meta do WordPress

Um campo personalizado no WordPress armazena informações extras sobre um post no back-end. Para recuperar e exibir esses meta dados, adicione a função get_post_meta ao código do seu site.

Esses meta dados são exibidos pelos desenvolvedores do WordPress para tornar a navegação mais intuitiva e o conteúdo mais acessível. Por exemplo, é possível realçar o preço do produto, adicionar uma tag de categoria extra e incluir um cabeçalho personalizado no seu post.

Neste tutorial, vamos explicar a função get_post_meta do WordPress e suas configurações. Você também vai aprender dois métodos bem conhecidos para adicionar essa função ao seu site WordPress: pelo Editor de Tema ou via plugins.

O que é a função get_post_meta do WordPress?

A função get_post_meta do WordPress permite acessar e mostrar os valores dos campos personalizados diretamente na interface. Você pode adicionar essa função diretamente ao arquivo de configuração do seu tema WordPress ou usar plugins como o WPCode.

Parâmetros da função get_post_meta

No WordPress, a sintaxe dessa função possui três parâmetros:

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

Aqui está o que cada parâmetro significa:

  • $post_id – O post do qual as informações personalizadas serão retiradas. Para ver todos os IDs de post, use get_the_id(). Se você usar um ID de post que não existe, a função retornará uma string vazia.
  • $key – A chave meta que representa o campo personalizado a ser acessado. Se deixada em branco, os dados serão retirados de todos os metacampos do post. Se o campo personalizado não existir ou faltar um valor meta, ele retorna um array vazio.
  • $single – Um parâmetro que determina se a função retorna um array de valores ou apenas um valor. O valor padrão é TRUE (verdadeiro), que obtém um único array. Definindo como FALSE (falso), a função retorna um array com todos os valores da chave meta especificada.

Importante! Se o parâmetro $single for TRUE e os campos meta contiverem multiplos dados, apenas o primeiro valor do campo meta será recuperado. Se você passar uma string vazia, a função buscará e retornará todos os meta dados salvos com essa chave no post atual.

Você também pode usar essa função para outras finalidades, como verificar se um campo meta específico existe no post desejado:

$custom_field = get_post_meta( get_the_id() );
if (!empty($custom_field)){
   echo "Meta field exists in this post"
} 
else
{
   echo "This post doesn’t contain a custom field"
}

Exibindo campos personalizados com a função get_post_meta no WordPress

Nesta seção, vamos explicar dois métodos para usar essa função do WordPress. Os dois métodos geram o mesmo resultado, então escolha o que for melhor para você.

Como adicionar a função get_post_meta manualmente a um template de post

A primeira opção é inserir a função diretamente no arquivo de template da página do WordPress. Sugerimos o uso de um child theme para evitar erros e garantir que suas alterações não sejam perdidas após uma atualização.

Para modificar o arquivo de template da página, use o painel do WordPress ou o Gerenciador de Arquivos da Hostinger. Veja como fazer isso usando a primeira opção:

  1. Faça login no seu painel de administrador do WordPress. Na barra lateral, navegue até Aparência Editor de Arquivo de Tema.
  2. No menu Arquivos do Tema, localize o arquivo single.php.
  3. Insira o seguinte código no fim do arquivo, certificando-se de que fique antes da tag <?php. Lembre-se de alterar os valores de acordo com as suas necessidades:
echo get_post_meta(Post ID, 'key', true );
  1. Inclua o loop do WordPress após a função para garantir que os meta dados sejam carregados corretamente na página. Veja um exemplo que exibe o valor meta do post no final do seu conteúdo:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else: ?>
<?php endif; ?>
  1. Clique em Atualizar Arquivo para salvar as alterações.

Quando a função retorna apenas um valor de uma chave meta, o loop do WordPress não é necessário. Mas se houver múltiplos valores ou um array de meta dados, ele será indispensável. Aqui está como você faz um loop em um array:


foreach ($your_function_variable as $value){
   //command goes here
}

Importante! Por causa do cache do WordPress, essa função diferencia letras maiúsculas de minúsculas.

Se o menu Editor de Arquivo de Tema não aparecer, isso significa que seu tema não permite a edição do arquivo de template da página. Felizmente, quem usa a Hospedagem Gerenciada para WordPress da Hostinger pode encontrar o arquivo pelo Gerenciador de Arquivos do hPanel.

O arquivo single.php está na pasta do seu tema ativo dentro de public_html/wp-content/themes. Para editar o arquivo, clique com o botão direito nele e selecione Editar.

Outra opção é inserir a função no arquivo functions.php do seu tema e depois usá-la no template do post. Se você tem tipos de post personalizados e deseja manter o arquivo do template principal sem código extra, esse método é o mais recomendado.

Como adicionar a função get_post_meta usando um plugin

Se você não consegue acessar o arquivo single.php, adicione a função usando um plugin. Vamos mostrar como fazer isso usando a versão grátis do WPCode.

Depois de instalar e ativar o plugin, siga estes passos:

  1. Do painel de administração, navegue até Snippets de Código → Adicionar Snippet.
  2. Passe o mouse sobre Adicionar Seu Código Personalizado e clique em Usar snippet.
  1. No menu suspenso do Tipo de Código, selecione Snippet de PHP.
  2. Insira seu código no campo de pré-visualização de código, incluindo a função e o loop.
  3. Role para baixo até a seção de Inserção e altere as configurações de acordo com suas necessidades. Por exemplo, vamos selecionar Inserir Automaticamente e Inserir Após o Conteúdo como localização.
  1. Clique em Salvar Snippet no canto superior direito.
  2. Pressione o botão de ativação para aplicar o código.

Exemplos de como usar a função get_post_meta no WordPress

Nesta seção, vamos mostrar vários exemplos de como usar a função para inspirar você.

Acessando objetos de posts publicados e suas chaves meta.

$published_posts = get_posts(array('post_status' =&gt; 'publish'));
foreach ($published_posts as $post) {
    $post_id = $post->ID;
    $meta_keys = get_post_meta($post_id);}

O código de exemplo usa o get_posts para buscar todos os meta dados dos posts publicados e passa por cada um deles com o foreach para acessar as meta chaves.

Buscando o elemento HTML img que corresponde a um anexo de imagem

$attachment_id = get_post_meta($post_id,'_thumbnail_id', true);
if ($attachment_id) {
   $image_html = wp_get_attachment_image($attachment_id, 'large');
   echo $image_html;
}
else { echo 'No images!'; }

Esse código busca o ID do anexo de imagem em um campo meta personalizado de um post e utiliza esse valor na função wp_get_attachment_image. Com o ID, o código localiza o elemento img da imagem.

Você também pode usar esse código para exibir a miniatura do post, só precisa mudar o parâmetro $size da função wp_get_attachment_image.

Buscando informações ligadas a um campo meta de um post de maneira dinâmica

$dynamic_suffix = 'example';
$custom_field_name = 'custom_field_' . $dynamic_suffix;
$dynamic_data = get_post_meta(get_the_id(), $custom_field_name, true);
if ($dynamic_data) {
    echo 'Dynamic Data: ' . esc_html($dynamic_data);
} else {
    echo 'No dynamic data found.';
}

Você pode adicionar campos personalizados dinâmicos usando um sufixo. Por exemplo, no código usamos o sufixo ‘example’ para criar o campo custom_field_example, que exibe os metadados no post atual. Se o valor existir, a função marca os dados como dinâmicos.  Se não, ela mostra uma mensagem de erro.

Recuperando o status do post com base nos metadados.

$post_status = get_post_meta(post_ID, 'custom_field_post_status', true);
if ($post_status) {
    echo 'Custom Status: ' . esc_html($post_status);
} else {
    echo 'Custom status not found or unavailable.';
}

Ele verifica os campos de meta dados personalizados do post para encontrar o status.  Se existir, o valor é exibido. Caso contrário, aparece uma mensagem de erro.

Conclusão

A função get_post_meta do WordPress permite que você recupere os meta dados de um campo personalizado e mostre-os para os visitantes do seu site. Ela usa três parâmetros: o ID do post, a chave do campo meta e uma opção que indica se deve buscar apenas um valor ou vários.

Para usar essa função, adicione o código ao seu tema no arquivo single.php ou functions.php. Você pode fazer isso usando o gerenciador de arquivos do seu painel de controle de hospedagem ou através do Editor de Arquivos de Tema do painel de administração do WordPress, que fica no menu Aparência.

Outra opção é utilizar um plugin, como o WPCode. Depois de instalar e ativar, adicione seu código como um novo snippet PHP e escolha onde ele deve aparecer no post, incluindo os meta dados. Clique no botão de ativar para começar a usar.

Ficou com alguma dúvida? Você pode explorar nosso tutorial do WordPress para saber mais!

Perguntas Frequentes (FAQ) sobre get_post_meta no WordPress

Nesta seção, vamos responder as perguntas mais frequentes sobre a função get_post_meta do WordPress.

Como eu uso a função get_post_meta?

Adicione a função no arquivo single.php do seu tema ou no functions.php caso esteja usando um tipo de post personalizado. No código, informe o ID do post, o nome do campo personalizado e se quer recuperar um único valor ou uma lista. Se tiver vários campos ou arrays, use um loop para exibir todos os meta dados.

Como a função get_post_meta recupera os metadados dos campos personalizados no WordPress?

Os campos personalizados do WordPress permitem adicionar informações extras a um post, que ficam salvas no banco de meta dados. Com a função get_post_meta, você consegue recuperar esses meta dados e mostrar na sua página.

Posso usar a função get_post_meta para exibir todos os campos personalizados?

Sim. O segundo parâmetro da função indica qual campo personalizado você quer acessar. Se você deixar como uma string vazia, ela vai buscar os valores de todos os campos personalizados do post. Já se colocar FALSE, ela retorna um array completo com todos os meta dados.

Como eu encontro o ID do post para usar na função get_post_meta?

Existem vários métodos para identificar o ID do post no WordPress. A forma mais fácil é usar um plugin como o Reveal IDs, que adiciona uma coluna com os IDs nos menus Todos os Posts e Todas as Páginas. Outra opção é usar echo get_the_ID para mostrar o ID direto no post.

Author
O autor

Ana Paula

Ana é formada em Línguas Estrangeiras Aplicadas às Negociações Internacionais pela Universidade Estadual de Santa Cruz, na Bahia. Atualmente atua como tradutora após 3 anos na equipe de Customer Success da Hostinger. Interessada por tecnologia, viagens, cinema e culinária.