Un campo personalizzato in un sito web WordPress memorizza i metadati di un post nel back-end. Per recuperare e visualizzare questi dati nel front-end, aggiungi la funzione get_post_meta al codice del tuo sito.
Gli sviluppatori WordPress mostrano tali informazioni per aiutare i visitatori a navigare nel sito web e comprenderne più facilmente il contenuto. Ad esempio, puoi includere il prezzo del prodotto, il tag di categoria aggiuntivo e l’intestazione personalizzata nel tuo post.
In questo tutorial, spiegheremo la funzione get_post_meta di WordPress e i suoi parametri. Imparerai anche due metodi comuni per aggiungerla al tuo sito web: utilizzando WordPress Theme Editor o un plugin.
Cos’è la funzione get_post_meta di WordPress?
Parametri della funzione get_post_meta di WordPress
Come utilizzare la funzione get_post_meta per visualizzare i campi personalizzati
Come aggiungere manualmente la funzione get_post_meta a un modello di post
Come aggiungere la funzione get_post_meta utilizzando un plugin
Esempi della funzione get_post_meta di WordPress
Domande frequenti su get_post_meta di WordPress
Come si utilizza la funzione get_post_meta? Come funziona la funzione get_post_meta di WordPress con i campi personalizzati?
Posso usare la funzione get_post_meta per visualizzare tutti i campi personalizzati?
Come trovo l’ID del post per la funzione get_post_meta?
Cos’è la funzione get_post_meta di WordPress?
La funzione get_post_meta di WordPress ti consente di recuperare i valori dai campi meta dei post e di visualizzarli nel front-end, mostrando informazioni aggiuntive sul tuo contenuto. Aggiungi questa funzione al file di configurazione del tuo tema WordPress o usa un plugin come WPCode.
Parametri della funzione get_post_meta di WordPress
La sintassi della funzione get_post_meta di WordPress ha tre parametri e si presenta come segue:
get_post_meta( $post_id, $key, $single );
Ecco cosa significa ogni parametro:
$post_id: il post da cui vengono ottenuti i metadati. Per recuperare tutti gli ID dei post, usa get_the_id(). Se usi un ID post inesistente, la funzione restituirà una stringa vuota. $key: la meta chiave del campo personalizzato da cui recuperare i dati. Lasciandolo vuoto, verranno recuperati i dati da tutti i meta campi del post nel post specificato. Se il campo personalizzato non esiste o non ha un valore meta, restituisce un array vuoto.
$single: un parametro che determina se la funzione restituisce un array di valori o uno solo. Il valore predefinito è TRUE, che ottiene un singolo array. Impostandolo come FALSE, viene recuperato un array di più valori dalla meta chiave specificata.
Importante! Se il parametro $single è TRUE e il meta campo del post contiene più valori di dati, la funzione recupera solo il primo valore. Nel frattempo, utilizzando una stringa vuota verranno restituiti tutti i metadati per la stessa chiave nel post corrente.
Puoi anche utilizzare la funzione per altri scopi, ad esempio per verificare se esiste uno specifico meta campo nell’ID post specificato:
$custom_field = get_post_meta( get_the_id() ); if (!empty($custom_field)){ echo "Il campo Meta esiste in questo post" } else { echo "Questo post non contiene un campo personalizzato" }
Come usare la funzione get_post_meta per visualizzare i campi personalizzati
In questa sezione, spiegheremo due metodi per usare la funzione get_post_meta di WordPress. Poiché entrambi hanno lo stesso risultato, sentiti libero di scegliere quello che ti sembra più comodo.
Come aggiungere manualmente la funzione get_post_meta a un modello di post
Il primo metodo per aggiungere la funzione è modificare il file del modello di pagina di WordPress. Consigliamo di creare un tema figlio per evitare errori e garantire che le modifiche persistano dopo un aggiornamento.
Puoi modificare il file del modello di pagina tramite la dashboard di amministrazione o il File Manager di Hostinger. Ecco come farlo usando il primo metodo:
Accedi alla dashboard di amministrazione di WordPress. Dalla barra laterale, vai su Aspetto → Editor file tema.
Nel menu File tema, individua il file single.php. Aggiungi il seguente frammento alla fine del file prima del tag di chiusura <?php. Ricordati di modificare i valori in base alle tue esigenze:
echo get_post_meta(Post ID, 'key', true );
Dopo la funzione, aggiungi il ciclo WordPress per consentire al codice di estrarre e visualizzare i dati recuperati. Ecco un esempio che visualizza il valore meta del post in fondo al tuo post:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <?php endwhile; else: ?> <?php endif; ?>
Fai clic su Aggiorna file per salvare le modifiche.
L’editor del file del tema nell’area di amministrazione di WordPress
Un ciclo WordPress è facoltativo se recuperi un singolo valore da una meta chiave. Tuttavia, è obbligatorio quando la funzione restituisce dati da più campi personalizzati o da un array di valori. Ecco come si esegue un loop di un array:
foreach ($your_function_variable as $value){ //command goes here }
Importante! A causa della memorizzazione nella cache di WordPress, questa funzione è sensibile alle maiuscole e alle minuscole.
Se il menu Theme File Editor è mancante, significa che il tuo tema non consente agli utenti di modificare il file del modello di pagina. Fortunatamente, gli utenti di hosting WordPress gestito di Hostinger possono utilizzare il File manager di hPanel per individuarlo.
Posizione del File Manager nella dashboard di gestione hosting di hPanel
Il file single.php si trova nella cartella del tema attualmente attiva all’interno di public_html/wp-content/themes. Per modificare il file, fai clic destro su di esso e seleziona Modifica.
In alternativa, aggiungi la funzione al file functions.php del tuo tema e chiamala nel tuo modello di post. Questo metodo è più adatto se hai tipi di post personalizzati e vuoi mantenere pulito il codice del file del modello principale.
Come aggiungere la funzione get_post_meta utilizzando un plugin
Se non riesci ad accedere al file single.php, aggiungi la funzione utilizzando un plugin. Ti mostreremo come farlo utilizzando la versione gratuita del plugin WPCode.
Dopo aver scaricato e installato il plugin, segui questi passaggi:
Dalla dashboard di amministrazione, vai su Frammenti di codice → Aggiungi frammento.
Passa il mouse su Aggiungi il tuo codice personalizzato e fai clic su Usa frammento.
Il pulsante per aggiungere un frammento personalizzato nel plugin WPcode
Dal menu a discesa Tipo di codice, seleziona Frammento PHP.
Inserisci il tuo codice nel campo Anteprima codice. Dovrebbe includere la funzione e il ciclo.
Scorri verso il basso fino alla sezione Inserimento e modifica le impostazioni in base alle tue esigenze. Ad esempio, selezioneremo Inserimento automatico e Inserisci dopo contenuto come posizione.
Le impostazioni di inserimento del frammento di codice nel plugin WPCode
Fai clic su Salva frammento nell’angolo in alto a destra.
Premi il pulsante di attivazione per applicare il codice.
Il pulsante di attivazione e Salva frammento in WPCode
Esempi di funzione get_post_meta di WordPress
Questa sezione spiegherà diversi esempi di utilizzo di get_post_meta per la tua ispirazione.
Accesso agli oggetti post pubblicati e alle chiavi meta
$published_posts = get_posts(array('post_status' => 'publish')); foreach ($published_posts as $post) { $post_id = $post->ID; $meta_keys = get_post_meta($post_id);}
L’esempio di codice usa get_posts per recuperare ogni oggetto post pubblicato e iterarlo attraverso la funzione usando il ciclo foreach per accedere alle sue chiavi meta.
Recupero dell’elemento HTML img che rappresenta un allegato immagine
$attachment_id = get_post_meta($post_id,'_thumbnail_id', true); if ($attachment_id) { $image_html = wp_get_attachment_image($attachment_id, 'large'); echo $image_html; } else { echo 'Nessuna immagine!'; }
Questo codice recupera l’ID allegato dell’immagine da un campo personalizzato in un post e passa il valore ottenuto alla funzione wp_get_attachment_image. Utilizzando l’ID, ottiene l’elemento img dell’immagine.
Puoi anche usare il codice per recuperare una miniatura del post modificando il parametro $size della funzione wp_get_attachment_image.
Accedi ai dati dinamici correlati a un campo meta del post
$dynamic_suffix = 'example'; $custom_field_name = 'custom_field_' . $dynamic_suffix; $dynamic_data = get_post_meta(get_the_id(), $custom_field_name, true); if ($dynamic_data) { echo 'Dati dinamici: ' . esc_html($dynamic_data); } else { echo 'Nessun dato dinamico trovato.'; }
È possibile introdurre campi generati dinamicamente utilizzando un suffisso dinamico. Ad esempio, creiamo custom_field_example utilizzando il suffisso example nel codice.
Questo codice recupera e visualizza i dati dal campo personalizzato dinamico nel post corrente. Se il valore è presente, la funzione etichetta i dati come dinamici. In caso contrario, restituisce un messaggio di errore se il valore non esiste.
Recupera lo stato del post in base ai metadati
$post_status = get_post_meta(post_ID, 'custom_field_post_status', true); if ($post_status) { echo 'Stato personalizzato: ' . esc_html($post_status); } else { echo 'Stato personalizzato non trovato o non disponibile.'; }
Il codice recupera gli stati dei post dai loro campi personalizzati. Se lo stato esiste, visualizza il valore. In caso contrario, la funzione restituisce un messaggio di errore.