Como exibir o valor dos campos personalizados na página


17

Eu tenho um tipo de postagem personalizado chamado 'software', que contém vários campos personalizados, como legenda, preço, captura de tela, link para download, etc. Criei uma função para permitir o uso da janela de edição do tinyMCE para alguns desses campos personalizados. Eu tenho tentado exibir esses campos na página, mas sem sucesso.

O método que estou usando é o seguinte:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

Aqui está um link para a página.

Abaixo do <hr/>na página, há uma lista de todos os meta criados. O único dos campos que será exibido é 'preço' por algum motivo estranho.

Alguém tem alguma idéia do que estou perdendo?


é de fato a get_post_meta()função e, se você estiver chamando dentro do loop, deve funcionar ... A menos que você não esteja usando o nome do campo personalizado correto. Eles geralmente vêm com um prefixo se forem implementados através de um plug-in como a meta-box. Você pode postar o código como declara seus campos personalizados? Uma solução seria abrir a tabela wp_postmeta no PhpMyAdmin e procurar na coluna meta_keypor LIKE% ...% e especificar "subtítulo" como valor da meta_key. Você verá exatamente sob que nome o Wordpress está armazenando seu campo personalizado.
pixeline

Eu sei que isso é velho, mas eu uso este sql para obter uma lista de todos os campos de meta no phpMyAdmin: m.meta_key SELECT FROM m GROUP BY wp_postmeta m.meta_key
ssaltman

Respostas:


17

Bem, você está usando:

get_post_meta(get_the_ID(), 'subtitle', TRUE);

Então, você está dizendo ao Wordpress para obter o valor meta do campo 'subtítulo' e que o valor retornado esteja no formato de string. Veja o documento get_post_meta () .

Para obter todos os metadados de uma postagem, você deve usar a função get_post_custom () . Por exemplo, se você estiver dentro do loop:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

Isso retornará todos os metadados da postagem. Se você quiser verificar, por exemplo, o meta campo "preço":

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}

Último bloco de código está faltando a)
carbide20

11
parece que $custom['price']retorna uma matriz de modo que você pode precisar de fazer$custom['price'][0]
wal

3

use este código para resolver seu problema.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.