get_post_meta restituisce solo Array
Ecco cosa sto cercando di fare:
Sto cercando di far sì che una pagina in WordPress estragga dati dai campi personalizzati di altre pagine. In modo che quando un utente crea una pagina e utilizza un particolare campo personalizzato (in questo caso multiedit_Info), questo venga popolato nella pagina "target".
Ecco il codice con cui sto lavorando:
<?php $item = get_post_meta($post->ID, 'multiedit_Info', false); ?>
<div id="info-col">
<?php echo $item; ?>
</div>
Attualmente sto utilizzando un plugin che crea blocchi di contenuto utilizzando campi personalizzati. E voglio fare in modo che un utente possa semplicemente creare una nuova pagina con i campi personalizzati e poi visualizzarli in un array su un'altra pagina.
Non sono sicuro se lo sto impostando correttamente o meno. È la prima volta che lo uso quindi ogni aiuto è apprezzato. Grazie!

Quando imposti il terzo parametro di get_post_meta()
a false
, restituisce un array con tutti i valori associati a quella chiave - impostando questo parametro a true
restituisce un singolo valore.
Quindi il tuo codice è corretto. Otterresti esattamente la stessa cosa se facessi qualcosa come questo:
$test = array( "1", "2", "3" );
echo $test; // stampa "Array"
Se vuoi visualizzare il contenuto del tuo array, dovrai usare print_r()
:
$item = get_post_meta( $post->ID, 'multiedit_Info', false );
echo print_r( $item );
Se facessi questo con l'array $test
del mio esempio precedente, vedresti:
Array
(
[0] => "1"
[1] => "2"
[2] => "3"
)

Ok, se lo cambio in questo modo:
<?php $item = get_post_meta($post->ID, 'multiedit_Info', false); ?>
<div id="info-col">
<?php print_r( $item ); ?>
</div>
Restituisce questo:
Array ( [0] => )

OK, significa che hai un array vuoto. Non c'è nulla memorizzato in quella meta chiave per quell'ID del post.

Quindi, questo funzionerà per TUTTI i campi personalizzati all'interno delle pagine o solo per quello? Sto cercando di ottenere TUTTI o QUALSIASI dei campi personalizzati con quelle meta informazioni.

get_post_meta()
recupera solo le informazioni meta per un singolo post/pagina. Non sono del tutto sicuro di cosa stai cercando di ottenere ora, e non è molto chiaro nella tua domanda. Puoi per favore modificare la tua domanda per aggiungere qualche chiarimento? Non limitarti a elencare ciò che hai provato, spiega in dettaglio cosa stai cercando di ottenere.

Ok, ho trovato la soluzione che cercavo qui:
ottenere tutti i valori per una chiave di campo personalizzato (cross-post).
Utilizzando la funzione elencata nel post sopra citato e poi richiamando le informazioni nel mio template con questo codice:
<?php $my_info = get_meta_values( 'multiedit_Info', 'page' ); ?>
e poi visualizzandoli con un foreach:
<?php foreach ( $my_var as $item) :
echo "<p>$item</p>";
endforeach; ?>
Ho raccolto tutti i campi personalizzati in tutte le pagine che li utilizzano e poi li ho visualizzati in una singola pagina.
Grazie per l'aiuto!
