Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come visualizzare un articolo di WordPress solo se ha un campo personalizzato specifico

Nota editoriale: guadagniamo una commissione dai link dei partner su WPBeginner. Le commissioni non influenzano le opinioni o le valutazioni dei nostri redattori. Per saperne di più su Processo editoriale.

Volete visualizzare un articolo di WordPress solo se ha un campo personalizzato specifico?

I campi personalizzati sono una comoda caratteristica di WordPress che consente di aggiungere informazioni aggiuntive agli articoli e alle pagine di WordPress. Potreste voler filtrare i vostri contenuti in base ai campi personalizzati.

In questo articolo vi mostreremo come visualizzare un articolo di WordPress solo se ha un campo personalizzato specifico.

How to Display a WordPress Post Only if It Has a Specific Custom Field

Perché visualizzare gli articoli di WordPress con un campo personalizzato specifico?

Quando si crea un articolo sul proprio sito web WordPress, è possibile utilizzare i campi personalizzati per aggiungere metadati aggiuntivi all’articolo. I metadati sono informazioni su chi siamo, come il titolo, l’autore e la data di pubblicazione.

I campi personalizzati sono un concetto avanzato di WordPress e ci sono molti modi per aggiungere campi personalizzati in WordPress, compreso l’uso del plugin Advanced Custom Fields (ACF).

Troverete molti consigli utili su come utilizzare e visualizzare i campi personalizzati nel nostro articolo, WordPress Custom Fields 101: Tips, Tricks, and Hacks.

You Can Add Metadata to a Post Using Custom Fields

Un utente ci ha chiesto come visualizzare gli articoli di WordPress solo se è presente un campo personalizzato specifico. Questo può essere utile se si vuole creare una pagina personalizzata che elenchi tutti gli articoli che contengono uno specifico campo e/o valore personalizzato.

Dopo aver risposto con la risposta, abbiamo pensato che sarebbe stato meglio condividerla con tutti gli altri, in modo che anche la Community di WordPress.org potesse trarne beneficio.

Modifica dei file del tema di WordPress: Cosa tenere presente

Per poter seguire correttamente questa esercitazione, ecco alcune cose da tenere a mente:

  1. Questo tutorial prevede la modifica dei file del tema di WordPress con il codice, quindi non è il più adatto per i principianti. Se siete alle prime armi, dovrete leggere la nostra guida su come copiare e incollare il codice in WordPress.
  2. Si consiglia di eseguire il backup del sito web e/o di utilizzare un ambiente di staging, in modo che il sito live non venga influenzato quando si verifica un errore. Questo perché si aggiungerà del codice ai file del tema, il che può essere rischioso.
  3. Si consiglia di capire come funziona la gerarchia di template di WordPress, in modo da sapere dove aggiungere il codice in seguito.
  4. È inoltre necessario acquisire familiarità con il funzionamento dei query loop di WordPress, perché questi parametri verranno richiamati in una query di WordPress.

Si noti inoltre che questo tutorial funziona solo con i temi classici di WordPress, in quanto i temi a blocchi hanno una serie diversa di file di tema.

Detto questo, vediamo come visualizzare un articolo di WordPress solo se ha un campo personalizzato specifico.

Visualizzare un articolo di WordPress solo se possiede un campo personalizzato specifico

Prima di mostrarvi il codice da utilizzare, dovete sapere a quale file del tema dovete aggiungerlo. Molto probabilmente si tratta di un template di pagina, come index.php, archivia.php o page.php.

Supponiamo di volerlo aggiungere al file index.php del tema Twenty Twenty-One. Ecco come appare attualmente la parte del file relativa al loop di WordPress:

<?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 gli articoli. Questo metodo è adatto alla maggior parte dei temi standard di WordPress e viene utilizzato per visualizzare gli articoli senza alcun filtro o ordinamento personalizzato.

Ora, supponiamo di utilizzare il campo personalizzato “colore” come nell’esempio precedente. È necessario sostituire l’intero codice con lo snippet sottostante:

<?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($the_query = new WP_Query('meta_key=color');) per recuperare gli articoli in base al valore di un campo personalizzato specifico (in questo caso, i post con il campo personalizzato ‘color’).

Utilizza quindi una query loop personalizzata(if ($the_query->have_posts()) per iterare sui post recuperati da questa query personalizzata, visualizzando il contenuto di ogni articolo nello stesso modo del primo frammento.

Abbiamo anche aggiunto la funzionewp_reset_postdata() per garantire che WordPress ritorni a visualizzare correttamente tutti gli articoli dopo aver effettuato una query personalizzata. In questo modo il sito funziona senza problemi e mostra agli utenti i contenuti corretti.

Ora, se si vogliono mostrare articoli specifici che hanno un campo personalizzato con un valore specifico, basta modificare la query dalla riga 3 in questo modo:

$the_query = new WP_Query( 'meta_value=blue' );

Questo visualizza tutti gli articoli che hanno un valore “blu” in un campo personalizzato.

Se si vuole essere sicuri che il campo ‘colore’ abbia il valore ‘blu’, il codice della query sarà simile a questo:

$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );

Per sapere chi sono i parametri aggiuntivi che si possono usare nella query, si può consultare la pagina di riferimento del codice WP_Query di WordPress.

Una volta salvato il codice nel file PHP del template della pagina, si può controllare il sito WordPress sul frontend per vedere il codice in azione.

Speriamo che questo tutorial vi abbia aiutato a capire come visualizzare un articolo di WordPress solo se ha un campo personalizzato specifico. Potreste anche voler consultare la nostra guida completa alla SEO di WordPress o dare un’occhiata al nostro elenco dei migliori plugin WordPress per far crescere il vostro sito web.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

12 commentiLascia una risposta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. ahmed says

    i have a question sir if i want to display single post and custom fields then what i should do.
    i dont want to display the post with specific custom fields. i want to display all custom fields of post

  3. Dave101 says

    Hi, thank for the useful tutorial. I have a question, in a wordpress website i set a meta value named “meta_country” and then i set every post with the country of the article, like “us”, “uk”, “fr”… Now I’m trying to add somewhere in the home of the blog a link that show list of all post with a specific country and a specific tag. For example all “UK” post tagged “APPLE”.
    I don’t understand how to do that, someone could help me?

  4. Mario M says

    I wasnt able to generate any results unless I included “post_type” parameter into the query.

    ie: $the_query = new WP_Query(‘post_type=page&meta_key=color’);

    • tara tin says

      as I know from php it must be meta_key!=’your key’

      ;just you need to know that “!” means “not”

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.