Aggiungere pagine e Custom Post Types al blog di WordPress

ATTENZIONE: questo articolo è più vecchio di un anno, e potrebbe non essere più attuale, sei pregato di tenerne conto.

Modificare il loop di WordPress

Di default, WordPress mostra nella home, o nella pagina destinata al blog, l’elenco degli articoli in ordine cronologico.

Mettiamo però il caso che a noi ci interessi mostrare anche diversi tipi di post, oltre gli articoli, come le pagine ed eventuali Custom Post Types che possiamo aver creato, o che abbiamo ereditato con il tema.

Possiamo tirare in ballo anche WooCommerce, volendo, ed aggiungere i nuovi prodotti.

Vediamo come fare, con dei semplici snippet.

Come al solito, gli snippet che seguono vanno inseriti nel file delle funzioni del tema, il classico functions.php, e come al solito è meglio lavorare su un tema child di WordPress.

Elencare tutti i tipi di post

Lo snippet che segue mostra tutti i tipi di post presenti in WordPress oltre agli articoli, come pagine e Custom Post Types (e prodotti di WooCommerce se presenti).

add_action( 'pre_get_posts', 'wpsites_include_all_post_types' );
function wpsites_include_all_post_types( $query ) {
if ( is_home() && $query->is_main_query() ) {
$query->set( 'post_type', 'all' );
return $query;
 
    }
}

Questo snippet non ha bisogno di essere modificato.

Elencare articoli e Custom Post Type

Questo snippet, invece, serve per elencare articoli e un Custom Post types, ad esempio il classico “portfolio”.

add_action( 'pre_get_posts', 'wpsites_add_custom_post_types_to_loop' );
function wpsites_add_custom_post_types_to_loop( $query ) {
if ( is_home() && $query->is_main_query() && !is_admin() ) {
$query->set( 'post_type', array( 'post', 'portfolio' ) );
return $query;
 
    }
}

Bisogna sostituire la voce “portfolio”, nella riga n. 4, con il nome preciso del Custom Post Type che ci interessa.
Se si vogliono aggiungere anche altri Custom Post Types, basta separarli con una virgola.

Elencare articoli e pagine

Questo snippet elenca gli articoli e le pagine standard di WordPress.

add_action( 'pre_get_posts', 'wpsites_posts_pages_home_loop' );
function wpsites_posts_pages_home_loop( $query ) {
if ( is_home() && $query->is_main_query() && !is_admin() ) {
$query->set( 'post_type', array( 'post', 'page' ) );
return $query;
 
    }
}

Non ha bisogno di essere modificato per funzionare.

Elencare articoli e prodotti di WooCommerce

In questo esempio, vengono elencati gli articoli di WordPress ed i prodotti di WooCommerce.

add_action( 'pre_get_posts', 'wpsites_posts_pages_home_loop' );
function wpsites_posts_pages_home_loop( $query ) {
if ( is_home() && $query->is_main_query() && !is_admin() ) {
$query->set( 'post_type', array( 'post', 'product' ) );
return $query;
 
    }
}

Anche questo snippet non ha bisogno di essere modificato.

In conclusione, cosa possiamo elencare in WordPress?

La risposta è semplice: tutti i tipi di post presenti in WordPress.

Come puoi notare, a parte il primo esempio che è leggermente diverso, negli altri viene sfruttato un array PHP in cui si decide quali post mostrare. Possiamo decidere che tipi di post aggiungere, sempre nella riga numero 4 degli scrip di esempio, basta che i loro nomi siano separati da una virgola.
Esempio:

( 'post', 'page', 'product', 'nome_post_personalizzato' )

Come risulterà la visualizzazione dell’elenco dei post?

Qui si apre un altro capitolo: post e pagine sono strutturati differentemente, hanno dati diversi. I Custom Post Types pure, quindi è abbastanza normale che nell’elenco di WordPress differenti tipi di post siano visualizzati in modo diverso.

Il risultato cambierà inoltre anche in funzione del tema utilizzato.

In genere si tende a valorizzare queste differenze, per far comprendere meglio al visitatore che alcuni elementi della lista sono articoli del blog, altri invece delle pagine, altri ancora elementi personalizzati.

Importante è che la lista dei contenuti sia coerente, e offra una navigazione piacevole.

Per fare questo devi intervenire sui CSS, qui però entrano in ballo le tue capacità di personalizzare un tema di WordPress.

Che ne pensi?
Domande? Suggerimenti?
Lascia un commento…

Condividi se ti è piaciuto!

Condividi su facebook
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp

Maggori informazioni:

Roberto Rota

Roberto Rota

Libero professionista, un "artigiano del web", lavoro nella comunicazione in rete da quando esiste Internet. Mi occupo principalmente di assistenza su WordPress e assistenza e consulenza WooCommerce, seguo la realizzazione di progetti web, in particolare siti di e-commerce, visibilità e comunicazione in rete. Il mio curriculum è su Linkedin, e mi puoi trovare anche su Instagram, FaceBook e Twitter.

CONTRIBUISCI A QUESTO SITO
Se il mio lavoro ti è stato di aiuto,
e vuoi che io continui a publbicare,
contribuisci allo sviluppo di questo sito
con una donazione su PayPal.

5 commenti su “Aggiungere pagine e Custom Post Types al blog di WordPress”

  1. claudiagallicoach

    Ciao Rob, rieccoti ancora (ho cercato “wordpress visualizzare gli articoli del blog in portfolio” :-D)
    Costruendo la pagina Blog con DIVI mi piacerebbe usare la visualizzazione del portfolio però da quanto ho capito, la sezione portfolio mi mostra solo i “progetti”. C’è questa dicitura nel modulo “portfolio larghezza piena”:

    Includi Categorie:

    Al momento non ci sono progetti assegnati a te in questa categoria.

    Seleziona le categorie che vuoi includere nel feed

    (non l’ho capita in verità)

    Volevo chiederti.. Che differenza c’è tra articoli e progetti? E nel caso ci fosse.. tu conosci un modo per visualizzare gli articoli nel portfolio?

    Grazie in anticipo!

    1. Ciao Claudia, i portfolio sono dei Custom Post Type creati ad arte, che nel tuo caso sono stati chiamati “Progetti”.

      Tecnicamente articoli e progetti sono la stessa cosa, ma il loop di WordPress cerca solo gli articoli, e nelle pagine dei Progetti invece il loop cerca ed elenca solo quelli.

      Certo è possibile fare in modo che al posto dei progetti cerchi gli articoli, ma c’è diverso lavoro da fare a seconda da come viene generato il loop.

      rob

      1. claudiagallicoach

        Grazie Rob, sempre velocissimo 😀
        Quindi nel caso decidessi di organizzare la pagina blog con il modulo portfolio posso tranquillamente usare i Custom Post Type “progetti” al posto degli articoli, giusto?

        Grazie…

        1. Se i progetti soddisfano le tue richieste sì, puoi provare, ma i custom post type possono essere soggetti a limitazioni, o vincolati al tema che stai usando, in futuro potrebbero crearti problemi.

          rob

          1. claudiagallicoach

            Sì, ci stavo pensando.. anche solo la casella ‘cerca’ (li trova, non li trova) o l’elenco delle categorie nella barra laterale (non ho ancora guardato se li integra). Per quel che riguarda il tema… ma chi lo molla più DIVI? 🙂

            Grazie ancora!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Cerca nel sito:

Assistenza specializzata WordPress e WooCommerce

Altri articoli

Mandami un messaggio

Ciao, come posso aiutarti?