Come visualizzare il valore dei campi personalizzati nella pagina


17

Ho un tipo di post personalizzato chiamato 'software', contenuto in vari campi personalizzati come sottotitoli, prezzo, schermate, link per il download, ecc. Ho creato una funzione per consentire l'uso della finestra di modifica di tinyMCE per alcuni di questi campi personalizzati. Ho cercato di visualizzare questi campi sulla pagina ma senza successo.

Il metodo che sto usando è questo:

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

Ecco un link alla pagina.

Sotto il <hr/>nella pagina è un elenco di tutti i meta creati. L'UNICO dei campi che verrà visualizzato è 'prezzo' per qualche strana ragione.

Qualcuno ha idea di cosa mi sto perdendo?


è davvero la get_post_meta()funzione, e se la stai chiamando all'interno del ciclo, dovrebbe funzionare ... A meno che tu non stia usando il nome del campo personalizzato giusto. Spesso vengono forniti con un prefisso se vengono implementati tramite un plug-in come meta-box. Puoi pubblicare il codice come dichiari i tuoi campi personalizzati? Una soluzione sarebbe quella di aprire la tabella wp_postmeta in PhpMyAdmin e cercare meta_keyLIKE% ...% nella colonna e specificare "sottotitolo" come valore meta_key. Vedrai esattamente con quale nome Wordpress sta memorizzando il tuo campo personalizzato.
pixeline,

So che questo è vecchio, ma uso questo sql per ottenere un elenco di tutti i metacampi in phpmyadmin: SELEZIONA m.meta_key DA wp_postmeta m GROUP BY m.meta_key
ssaltman

Risposte:


17

Bene, stai usando:

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

Quindi, stai dicendo a Wordpress di ottenere il meta valore del campo "sottotitoli" e che il valore restituito deve essere in formato stringa. Vedi docu get_post_meta () .

Per ottenere tutti i metadati di un post devi usare invece la funzione get_post_custom () . Ad esempio, se ti trovi all'interno del loop:

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

Questo restituirà tutti i metadati del post. Se si desidera verificare, ad esempio, il meta campo "prezzo":

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

Manca l'ultimo blocco di codici a)
carbide20

1
sembra che $custom['price']ritorni un array quindi potrebbe essere necessario farlo$custom['price'][0]
wal

3

usa questo codice per risolvere il tuo problema.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.