Sai quando devi mostrare determinati post di WordPress in base a campi personalizzati? Ci siamo passati.
Quando abbiamo iniziato con WordPress, vedere qualsiasi frammento di codice ci intimidiva, soprattutto quando tutto ciò che volevamo era visualizzare post con informazioni specifiche.
Ma ecco la buona notizia: dopo aver aiutato migliaia di principianti di WordPress, abbiamo scoperto che anche qualcosa che suona tecnico, come il filtraggio tramite campi personalizzati, non deve essere spaventoso.
Infatti, ti guideremo attraverso un semplice metodo di codice per farlo.
Questa soluzione funziona perfettamente sia che tu stia pubblicando normali post del blog o tipi di post personalizzati basati su criteri specifici.

📌 Nota rapida: Questo tutorial serve a visualizzare i post di WordPress se hanno un valore inserito in un campo personalizzato specifico.
Se desideri visualizzare i campi personalizzati sul front-end di un post di WordPress, puoi leggere la nostra guida su come visualizzare i campi personalizzati nei temi WordPress.
Perché visualizzare post di WordPress con un campo personalizzato specifico?
Quando crei un post sul tuo sito web WordPress, puoi utilizzare i campi personalizzati per aggiungere metadati aggiuntivi al post.
I metadati sono informazioni aggiuntive che puoi aggiungere a un post. Ad esempio, se stessi scrivendo una recensione di un libro, potresti aggiungere campi personalizzati per 'Nome dell'autore' o 'Valutazione in stelle'.
I campi personalizzati sono un concetto avanzato di WordPress e ci sono molti modi per aggiungerli in WordPress. Troverai molti suggerimenti utili su come usare e visualizzare i campi personalizzati nel nostro post, WordPress Custom Fields 101: Suggerimenti, Trucchi e Hack.

Uno dei nostri utenti ci ha chiesto come visualizzare i post di WordPress solo se era presente un campo personalizzato specifico. Questo può essere utile se stai cercando di creare una pagina personalizzata che elenchi tutti i post che contengono un campo personalizzato e/o un valore specifico.
Dopo aver risposto con la soluzione, abbiamo pensato che sarebbe stato meglio condividerla con tutti, in modo che anche la più ampia community di WordPress.org potesse trarne beneficio.
Modificare i file del tuo tema WordPress: Cosa tenere a mente
Per poter seguire correttamente questo tutorial, ecco alcune cose da tenere a mente:
- Questo tutorial prevede la modifica dei file del tuo tema WordPress con codice, quindi non è il più adatto per i principianti assoluti. Se sei nuovo a questo, dovrai leggere la nostra guida su come copiare e incollare codice in WordPress.
- Ti consigliamo di eseguire il backup del tuo sito web e/o utilizzare un ambiente di staging in modo che il tuo sito live non venga influenzato in caso di errore. Questo perché aggiungerai codice ai file del tuo tema, il che può essere rischioso.
- Ti consigliamo di capire come funziona la gerarchia dei template di WordPress in modo da sapere dove aggiungere il codice in seguito.
- Dovrai anche familiarizzare con il funzionamento dei loop di WordPress perché richiameremo questi parametri in una query di WordPress.
Inoltre, tieni presente che questo tutorial funziona solo con i temi WordPress classici, poiché i temi a blocchi hanno un set di file di tema diverso.
Detto questo, diamo un'occhiata a come visualizzare un post di WordPress solo se ha un campo personalizzato specifico.
Come filtrare i tuoi post in base a campi personalizzati specifici
Prima di mostrarti il codice che devi usare, devi sapere a quale file del tema devi aggiungerlo. Molto probabilmente, si tratterà di un modello di pagina, come index.php, archive.php, o page.php.
Supponiamo che tu voglia aggiungerlo al file index.php del tema Twenty Twenty-One. Ecco come appare al momento la parte del loop di WordPress di quel file:
<?php
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
get_footer();
Questo codice utilizza il loop predefinito di WordPress (have_posts() e the_post()) per visualizzare i post. Questo metodo è adatto alla maggior parte dei temi standard di WordPress e viene utilizzato per visualizzare i post senza alcun filtro o ordinamento personalizzato.
Ora, supponiamo che tu utilizzi il campo personalizzato 'color' come nell'esempio precedente. Dovrai sostituire l'intero codice con lo snippet qui sotto:
<?php
// The Query to show a specific Custom Field
$the_query = new WP_Query('meta_key=color');
// Load posts loop.
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
// Reset Post Data
wp_reset_postdata();
get_footer();
In questo nuovo codice, abbiamo introdotto una query personalizzata per recuperare i post che hanno un campo personalizzato specifico (in questo caso, qualsiasi post con il campo personalizzato 'colore').
Utilizza quindi un loop personalizzato (if ($the_query->have_posts())) per scorrere i post recuperati da questa query personalizzata, visualizzando il contenuto di ciascun post nello stesso modo del primo snippet.
Abbiamo anche aggiunto la funzionewp_reset_postdata() per garantire che WordPress ritorni a visualizzare correttamente tutti i post dopo la query personalizzata. Ciò garantisce che il sito funzioni senza intoppi e mostri i contenuti giusti agli utenti.
Ora, cosa succede se vuoi trovare post in cui il campo personalizzato 'colore' ha un valore specifico, come 'blu'? Per farlo, devi solo aggiungere un parametro 'meta_value' alla tua query.
Il tuo codice di query aggiornato apparirà così:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
💡Suggerimento Pro: Puoi estendere ulteriormente il tuo filtraggio con il parametro meta_compare. Questo ti permette di trovare post che non corrispondono a un valore.
Ad esempio, per visualizzare tutti i post in cui il colore non è 'blu', la tua query sarà simile a questa:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
Il codice != dice a WordPress di trovare tutti i post in cui il campo 'colore' esiste ma non è uguale a 'blu'.
Ci sono molti altri operatori di confronto che puoi usare, che puoi trovare nella documentazione ufficiale per sviluppatori di WordPress.
Una volta salvato il codice nel file PHP del template di pagina, puoi controllare il tuo sito WordPress sul front-end per vedere il tuo codice in azione.
Domande frequenti sulla visualizzazione di un post se ha un campo personalizzato specifico
Ecco alcune domande che i nostri lettori pongono frequentemente sulla visualizzazione di un post se ha solo un campo personalizzato specifico:
C'è un modo per farlo senza modificare i file del tema?
Sì, ed è il metodo che raccomandiamo per la maggior parte degli utenti. Un plugin come WPCode ti permette di aggiungere in modo sicuro snippet PHP personalizzati come questo senza toccare direttamente i file del tuo tema.
Questo protegge il tuo sito da errori e garantisce che le tue personalizzazioni non vengano perse quando aggiorni il tuo tema.
Posso filtrare i post per più campi personalizzati?
Puoi. La funzione WP_Query è molto potente e accetta argomenti più complessi. Useresti un parametro 'meta_query', che ti consente di creare un array di condizioni per corrispondere a più campi personalizzati contemporaneamente.
Questo metodo funziona con i temi a blocchi?
Questo tutorial specifico si concentra sui temi classici modificando file come index.php o archive.php. I temi a blocchi utilizzano l'Editor del sito e non si basano su questi file.
Per ottenere un risultato simile in un tema a blocchi, useresti il blocco Query Loop e le sue opzioni di filtro integrate, che non richiedono codice personalizzato.
Qual è la differenza tra 'meta_key' e 'meta_value'?
Pensa a ‘meta_key’ come al nome dell'etichetta, come ‘Colore’ o ‘Stato’. Il ‘meta_value’ sono i dati effettivi inseriti in quel campo, come ‘Blu’ o ‘Pubblicato’.
Usare la chiave trova qualsiasi post con quel campo personalizzato, mentre usare il valore trova qualsiasi post con quella specifica informazione.
Scopri altri modi per personalizzare il tuo sito WordPress
Ecco altri modi per personalizzare le tue pagine WordPress:
- Come stilizzare le singole categorie in modo diverso in WordPress
- Come aggiungere una barra di scorrimento personalizzata in WordPress
- Come aggiungere stili personalizzati ai widget di WordPress
- Come stilizzare ogni post di WordPress in modo diverso
- Come utilizzare gli shortcode nei tuoi temi WordPress
- Come evidenziare i nuovi post per i visitatori di ritorno in WordPress
- Come cambiare la posizione della sidebar in WordPress
Speriamo che questo tutorial ti abbia aiutato a imparare come visualizzare un post di WordPress solo se ha un campo personalizzato specifico. Potresti anche voler consultare la nostra guida completa su come modificare un sito web WordPress e le nostre scelte esperte dei migliori plugin Figma per WordPress.
Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

ahmed
ho una domanda signore se voglio visualizzare un singolo post e campi personalizzati, cosa dovrei fare.
non voglio visualizzare il post con campi personalizzati specifici. voglio visualizzare tutti i campi personalizzati del post
Dave101
Ciao, grazie per il tutorial utile. Ho una domanda, su un sito web WordPress ho impostato un valore meta chiamato "meta_country" e poi ho impostato ogni post con il paese dell'articolo, come "us", "uk", "fr"... Ora sto cercando di aggiungere da qualche parte nella home del blog un link che mostri l'elenco di tutti i post con un paese specifico e un tag specifico. Ad esempio, tutti i post "UK" taggati "APPLE".
Non capisco come fare, qualcuno potrebbe aiutarmi?
Максим Каминский
grazie mille, ha aiutato molto!
pjhooker
Thx!
Eduard Unruh
omg finalmente GRAZIE!
Mario M
Non sono riuscito a generare alcun risultato a meno che non includessi il parametro “post_type” nella query.
ad es.: $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Magnifico, così semplice e pulito.
Grazie.
scottlee.me
@ad Ottima domanda! Sono curioso anch'io.
ad
Ciao,
Come potrei mostrare post che NON hanno un Custom Field specifico? Qualche idea?
Grazie!!!
tara tin
per quanto ne so da php dovrebbe essere meta_key!=’your key’
;devi solo sapere che "!" significa "non"
brunobruno2
Bellissimo! Molte grazie per averlo condiviso. Funziona a meraviglia.