Come visualizzare il valore dei campi personalizzati nella pagina

13 set 2013, 19:14:43
Visualizzazioni: 149K
Voti: 27

Ho un tipo di post personalizzato chiamato 'software', che contiene vari campi personalizzati come sottotitolo, prezzo, screenshot, link per il download, ecc. Ho creato una funzione per consentire l'uso della finestra di modifica tinyMCE per alcuni di questi campi personalizzati. Sto cercando di visualizzare questi campi sulla pagina ma senza successo.

Il metodo che sto utilizzando è 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 c'è un elenco di tutti i meta creati. L'UNICO campo che viene visualizzato è 'price' per qualche strana ragione.

Qualcuno ha idea di cosa mi stia sfuggendo?

2
Commenti

è effettivamente la funzione get_post_meta(), e se la chiami all'interno del loop, dovrebbe funzionare... A meno che tu non stia usando il nome sbagliato per il campo personalizzato. Spesso hanno un prefisso se sono implementati tramite un plugin come meta-box. Puoi postare il codice con cui dichiari i tuoi campi personalizzati? Una soluzione sarebbe aprire la tabella wp_postmeta in PhpMyAdmin e cercare nella colonna meta_key con LIKE %...% specificando "subtitle" come valore di meta_key. Vedrai esattamente con quale nome WordPress sta memorizzando il tuo campo personalizzato.

pixeline pixeline
13 set 2013 19:37:39

So che è vecchio, ma uso questa query SQL per ottenere un elenco di tutti i meta field in phpmyadmin: SELECT m.meta_key FROM wp_postmeta m GROUP BY m.meta_key

ssaltman ssaltman
10 nov 2015 17:31:26
Tutte le risposte alla domanda 2
2
30

Bene, stai utilizzando:

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

Quindi, stai dicendo a WordPress di ottenere il valore meta del campo 'subtitle' e che il valore restituito sia in formato stringa. Vedi la documentazione di get_post_meta().

Per ottenere tutti i metadati di un articolo dovresti usare la funzione get_post_custom(). Ad esempio, se sei all'interno del loop:

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

Questo restituirà tutti i metadati dell'articolo. Se vuoi verificare, ad esempio, il campo meta "price":

if(isset($custom['price'])) {
    echo 'Prezzo: '.$custom['price'][0];
}
13 set 2013 19:41:29
Commenti

Manca una parentesi ) nell'ultimo blocco di codice

Dan Hennion Dan Hennion
29 apr 2018 02:37:31

Sembra che $custom['price'] restituisca un array, quindi potrebbe essere necessario usare $custom['price'][0]

wal wal
25 giu 2019 17:41:15
0

utilizza questo codice per risolvere il tuo problema.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
30 lug 2015 10:15:27