Come ottenere e visualizzare i dati di una meta box in una pagina

5 mar 2013, 12:43:52
Visualizzazioni: 36K
Voti: 3

Sto cercando di mettere insieme una Metabox con 3 campi editor di testo per un tipo di post personalizzato.

La box viene visualizzata e sembra salvare correttamente i dati nelle voci del tipo di post personalizzato, ma non riesco a far visualizzare i dati nella pagina single-[custom-post-type].php.

Recentemente ho provato il seguente codice per visualizzare i dati della meta box nella pagina:

global $post;
$meta = get_post_meta($post->ID, 'my-info', true ); 
if ($meta != '') {
    echo $meta
} else { 
    echo "Impossibile visualizzare il contenuto";
}

Non sono sicuro se sia un problema nella creazione/salvataggio della mia Metabox che non mi permette di visualizzarla. Se qualcuno potesse indicarmi la direzione giusta lo apprezzerei molto.

Ecco un link al codice che sto utilizzando per la mia Metabox se può essere d'aiuto:

Codice Metabox

1
Commenti

Ci sono progressi su quella domanda?

kaiser kaiser
22 ott 2013 13:30:19
Tutte le risposte alla domanda 4
0

Per mostrare i metadati del post type in un template di pagina singola, assumo che ti trovi all'interno del Loop.

// Usa get_the_ID() per ottenere l'ID tramite la funzione API
echo get_post_meta( get_the_ID(), 'my-info', true );
// Puoi anche chiamarlo dal globale, visto che la query si riferisce alla pagina singola corrente
echo get_post_meta( $GLOBALS['post']->ID, 'my-info', true );

Se non ottieni alcun output, potresti voler controllare l'intero set di dati personalizzati del post:

printf( '<pre>%s</pre>', var_export( get_post_custom( get_the_ID() ), true ) );
5 mar 2013 12:57:26
0

Utilizza gli ID dei campi per ottenere i metadati dei rispettivi campi come nel seguente codice.

global $post;
$meta = get_post_meta($post->ID,'myinfo-box1', true); // Usa myinfo-box1, myinfo-box2, myinfo-box3 per i rispettivi campi
if ($meta != '') {
    echo $meta;
} else { 
    echo "Impossibile visualizzare il contenuto";
} 
5 mar 2013 13:08:17
1
$m_meta_description = get_post_meta($post->ID, 'images_url',true);

echo 'valore del meta box: ' . $m_meta_description;
24 gen 2018 07:20:02
Commenti

Potresti spiegare perché questo risolverà il problema?

Krzysiek Dróżdż Krzysiek Dróżdż
5 dic 2018 09:48:43
1
-2

A volte l'id non funziona, quindi possiamo utilizzare l'attributo name.

Per visualizzare i valori dei meta box il tuo codice deve essere all'interno del loop.

$meta = get_post_meta($post->ID,'meta-box-text', true);

Qui meta-box-text è l'attributo name del mio campo di input testuale.

Funziona perfettamente nel mio caso.

16 giu 2018 08:24:10
Commenti

Perché? Perché pensi che debba essere nel loop? Il primo parametro di questa funzione è post_id, quindi PUOI usarlo ovunque, non solo nel loop. Mi dispiace, ma la tua risposta è semplicemente sbagliata.

Krzysiek Dróżdż Krzysiek Dróżdż
16 giu 2018 11:31:24