Você quer obter valores de campos personalizados usando um shortcode? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para obter o valor de um campo personalizado com um shortcode no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
add_shortcode('field', 'shortcode_field');
function shortcode_field($atts){
extract(shortcode_atts(array(
'post_id' => NULL,
), $atts));
if(!isset($atts[0])) return;
$field = esc_attr($atts[0]);
global $post;
$post_id = (NULL === $post_id) ? $post->ID : $post_id;
return get_post_meta($post_id, $field, true);
}
[field "my_key"] [field "my_key" post_id=1]
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 10 melhores plugins de depoimentos do WordPress para adicionar prova social e como criar um formulário de contato no WordPress.
O meu apenas exibe a palavra Array?
Olá, excelente snippet 🙂
É possível mostrar uma mensagem de erro quando o arquivo personalizado não existe?
É difícil identificar erros quando não há nenhuma saída.
Atenciosamente
Rudi
Alguma ideia de como exibir um campo personalizado como um link?
Eu tentei isto: teste mas não está funcionando. Obrigado.
Olá,
Está funcionando bem para campos personalizados de plugins, obrigado! Mas como renderizar campos padrão como “Título” ou “Resumo”?
muito obrigado. bom trabalho
Olá Kasra, de nada. Não se esqueça de nos seguir no Facebook e Twitter. 🙂
Como obter o valor global de um campo personalizado, já que ele não é disparado na meta descrição pelo Rank Math.
Este artigo me ajudou muito. Muitos agradecimentos do Vietnã.
Obrigado, funcionou como mágica 🙂
muito obrigado. isso funciona perfeitamente
Fico feliz que tenha ajudado, Nail 🙂
Mamma mia – funciona perfeitamente! Muito obrigado! 🙂
Obrigado por este snippet incrível, funciona como mágica ?
Fico feliz que tenha funcionado para você
Olá
Eu não consigo fazer funcionar. Preciso editar o short code e substituir as palavras: my_key pelo nome do meu campo personalizado?
E preciso mudar algo no código que você colocou no functions.php ou colar como está? Muito obrigado
Ótimo snippet, obrigado. Funciona muito bem nas minhas páginas de produtos do WooCommerce, mas não no carrinho e checkout. Qualquer conselho sobre como corrigir isso seria muito apreciado!
Nenhuma ideia? 🙁
Olá! Obrigado pelo código.
É possível personalizar o snippet para ter também um shortcode [field “my_key” page_id=1]?
Olá Marco, se eu pudesse adivinhar, você está usando o nome de campo personalizado errado. alguns plugins usarão um sublinhado antes do nome do campo personalizado, por exemplo, _description. isso é feito para ocultar os campos no lado do administrador.
você pode usar este trecho dentro do seu tema para exibir uma lista de todos os campos personalizados. Isso exibirá um aviso de administrador na tela de edição de postagens no painel e listará tudo. Você pode simplesmente remover este trecho quando tiver o nome de campo personalizado correto.
http://wpsnipp.com/index.php/functions-php/show-absolutely-custom-fields-post/
Não, “description” é o nome do campo, importado pelo plugin “CultureObject”
Eu insiro um novo “testfield” com o texto “textfield for post” na tela do editor de posts.
O “description” não aparece, o texto “textfield for post” é visível.
Eu olhei no banco de dados e ambos os campos aparecem. Exceto pelo texto/conteúdo, eles são idênticos.
Por que um campo personalizado importado pelo CulturObject se comporta de forma diferente de um campo personalizado criado manualmente.
A diferença é que os campos que eu preencho manualmente (e que aparecem) estão em posts regulares e os campos personalizados importados pelo CultureObject estão em Posts Personalizados? (que não aparecem)
Isso é incrível. Muito obrigado!
Não gera nada dentro de um bloco de texto do Grid Element, em um Post Grid (Visual Composer)
Obrigado! Estava procurando no Google nos últimos 2 dias!!!
Obrigado por esse artigo, me ajudou muito 🙂
Obrigado por esse artigo, me ajudou muito 🙂
[…] Fonte: http://wpsnipp.com/index.php/functions-php/get-custom-field-value-with-shortcode/ […]
Ao tentar colocar o conteúdo de um campo personalizado dentro de outro shortcode, dependendo de como o outro shortcode está configurado, você poderia dispensar as aspas duplas?
Por exemplo:
[my_field_name]Em vez de
[field "my_field_name"]Dessa forma, um shortcode como este funcionaria (certo?):
[contact-form to="[my_field_name]"]Porque se um shortcode com aspas estiver dentro de um shortcode com aspas, a confusão de aspas/colchetes no final o confunde (ou seja, não funciona).
Eu não vejo nenhuma aspa dupla na sua função/snippet, então eu não tinha certeza.
Muito obrigado!
Eu tentei
[field]my_field_name[/field]e não funcionou.Postarei detalhes sobre shortcodes aninhados amanhã, dê uma olhada, isso lhe dará uma ideia melhor de como ele precisa funcionar com shortcodes embutidos.
Não, você não pode fazer isso, não funcionaria mais. O que você está tentando fazer com os shortcodes aninhados? Aninhar shortcodes também não vai funcionar, só vai quebrar.
Kevin, acho que isso é EXATAMENTE o que eu esperava encontrar. Obrigado por isso. Quero ter certeza de como usá-lo. Quando você usaria o segundo em vez do primeiro? :
[field “my_key”][field “my_key” post_id=1]
Obrigado.
Bem, se você adicionar o shortcode a uma postagem, você pode usar [field “my_key”] my_key é o nome do campo personalizado. O outro método [field “my_key” post_id=1] permitirá que você defina o ID da postagem para obter o valor do campo personalizado de uma postagem específica.
Você poderia ter código HTML em um campo personalizado que “gera”? Por exemplo:
Hoje é o maior dia do mundo.
Blah
[field “list_of_images”]
As imagens acima são grandiosas, não são?
Blah
[field “html_block1”]
Blah
[field “html_block2”]
Obrigado por ler meu blog.
E, só para esclarecer, se você não adicionar um “post_id=”, ele apenas buscará o campo personalizado do post/página em que você já está – o post atual, certo?
1. Sem um ID, sim, ele apenas puxará o campo personalizado das postagens atuais.
2. Não vejo por que não deveria funcionar bem, você deve ser capaz de colocar qualquer coisa no campo e ele será exibido.
Acho que o que estou perguntando é se ele renderiza o conteúdo do campo personalizado como se tivesse sido inserido no Editor Visual ou como se tivesse sido inserido no Editor HTML.
Não, ele renderizará HTML perfeitamente.
Adicionar este código em function.php desabilitou meu site. O que eu estava fazendo de errado?
Shovan Sargunam
da equipe http://tamilbabyname.org
Você está recebendo algum erro?
Falta um A ) na linha 6, antes de return;
Funciona bem, tirando isso 🙂
Legal, obrigado, atualizei o snippet,
[…] Esta postagem foi mencionada no Twitter por wp_freak, WPSNIPP. WPSNIPP disse: #wordpress Obtenha o valor do campo personalizado com shortcode http://bit.ly/fWRRa3 #blog por favor RT 🙂 […]