Il Loop di WordPress è parte integrante del modo in cui un sito WordPress mostra i contenuti. Se volete essere in grado di personalizzare alcune parti del vostro sito (o magari di approfondire lo sviluppo di WordPress), conoscere il Loop di WordPress è un must.
Sia che non abbiate mai sentito parlare del Loop di WordPress, sia che ne abbiate già una certa dimestichezza, questo post è qui per aggiornarvi su tutto ciò che c’è sapere sul Loop di WordPress.
Spiegheremo cos’è e perché può essere utile lavorare con il Loop. Poi mostreremo passo dopo passo come lavorare con il Loop nei template PHP (per i temi classici) e con il blocco Query Loop nei temi più recenti.
Entriamo nel vivo della questione, partendo dall’inizio…
Cos’è il Loop di WordPress?
Il Loop di WordPress è ciò che WordPress utilizza per mostrare i contenuti sul vostro sito. Tradizionalmente si tratta di un codice PHP che potete personalizzare utilizzando i tag dei template, anche se i temi a blocchi di WordPress più recenti utilizzano il blocco Query Loop invece del PHP.
In termini più tecnici, il Loop interroga il database del vostro sito per recuperare i dati di ogni post e poi li mostra secondo un template. Per controllare questo template, potete utilizzare una serie di tag o blocchi di template, a seconda che tu stia usando PHP o il blocco Query Loop.
Ad esempio, supponiamo che abbiate una pagina che elenca i post più recenti del vostro blog, come la pagina principale del blog:
- Per prima cosa, il Loop verificherà se esistono dei post.
- Se ci sono, mostrerà il primo post secondo il vostro template.
- Poi controlla se esiste un altro post. Se c’è un altro post, il template viene rimesso in “loop” e mostra il secondo post secondo lo stesso template.
- Continuerà a scorrere i vostri post fino a quando non ci saranno più post (o fino a quando non raggiungerà qualche altro limite, come ad esempio le regole di paginazione).
Ecco un esempio di frontend di come appare il Loop dal blog di Kinsta: ogni casella evidenziata è un’altra iterazione del “loop”. Potete notare che tutti e sei i riquadri utilizzano lo stesso template.
Quando WordPress utilizza il Loop per mostrare i contenuti?
WordPress si affida al Loop per mostrare i contenuti in qualsiasi pagina che elenchi più contenuti (post, pagine, tipi di post personalizzati, ecc.).
Ecco alcune delle principali situazioni in cui WordPress utilizza il Loop, anche se non si tratta di un elenco completo:
- Homepage del sito web che mostra i post recenti
- Pagina principale del blog
- Pagine di elenchi di categorie
- Pagine di elenchi di tag
- Pagine dei risultati della ricerca
- Pagine di elenchi di tipi di post personalizzati
Tecnicamente, WordPress può anche utilizzare il Loop per mostrare un singolo contenuto. In queste situazioni, il “loop” terminerebbe dopo aver interrogato il primo elemento.
Tuttavia, quando la maggior parte delle persone pensa al Loop di WordPress, pensa che esso “giri” attraverso più elementi per visualizzarli in una sorta di elenco.
Per cosa potete usare il Loop di WordPress?
Imparare a modificare e manipolare il Loop di WordPress può aiutarvi a utilizzare WordPress per creare siti web dinamici e di facile utilizzo.
Ecco tre dei principali modi in cui potete usare il Loop di WordPress per migliorare il vostro sito…
Controllare come mostrare i contenuti e i metadati di base dei post
Il motivo più comune per cui potreste voler personalizzare il Loop di WordPress è quello di controllare il layout di base dei contenuti del vostro sito.
Ad esempio, supponiamo che vogliate controllare il layout della pagina del vostro blog. Manipolando il Loop di WordPress, potrete controllare il layout di elementi importanti come il titolo del post, il contenuto, l’autore, i metadati (ad esempio la data di pubblicazione) e così via.
Utilizzando le condizioni, potete anche creare layout diversi per diversi tipi di contenuti. Ad esempio, potete utilizzare un layout per elencare i post della categoria “Notizie” e un layout diverso per elencare i post della categoria “Interviste”.
In questo modo potrete ottimizzare il design per i diversi tipi di contenuti del vostro sito e creare un’esperienza ottimale per i vostri visitatori.
Inserire i dati dei campi personalizzati per creare siti più dinamici
Capire come utilizzare il Loop di WordPress può anche aiutarvi a utilizzare WordPress per creare siti con contenuti più dinamici.
Ad esempio, supponiamo che vogliate creare un sito di annunci immobiliari. Come parte di questo, magari vi piacerebbe avere una pagina che elenchi le informazioni sulle case disponibili per la vendita attraverso un tipo di post personalizzato “Casa” che avete creato.
Se utilizzaste il design predefinito del post che viene fornito con il vostro tema, verrebbero visualizzate solo le informazioni di base, come il titolo e il contenuto, proprio come avviene per i normali post del blog.
Modificando il Loop di WordPress per il vostro tipo di post “Casa” e aggiungendo i relativi tag del template, potete includere le informazioni dei campi personalizzati che state utilizzando, come il numero di camere da letto e di bagni di ogni casa, la metratura e così via.
Inserire contenuti diversi dai post negli elenchi di post (ad es. annunci)
Imparare a usare il Loop di WordPress può anche aiutarvi a inserire contenuti non dinamici negli elenchi di contenuti del vostro sito. Si tratta di contenuti che il vostro sito non preleva dal database di WordPress.
Ad esempio, supponiamo che vogliate inserire un banner pubblicitario tra ogni post dell’elenco (o un altro tipo di contenuto statico). Modificando il Loop, potrete facilmente inserire i vostri annunci in qualsiasi punto del layout.
Due opzioni per lavorare con il Loop di WordPress
Con i metodi di sviluppo odierni di temi WordPress, il modo in cui interagite con il Loop di WordPress dipende dal tipo di tema che state utilizzando.
In passato, tutti i temi WordPress erano basati su template PHP, quindi era necessario lavorare con il Loop utilizzando il PHP nei file dei template dei temi. Al giorno d’oggi, questi tipi di temi vengono definiti temi WordPress classici.
La maggior parte dei temi WordPress più popolari utilizza ancora questo approccio classico, il che significa che dovrete utilizzare il PHP per lavorare con il Loop di WordPress. Alcuni esempi di temi classici sono Astra, GeneratePress, Kadence, Neve, OceanWP e così via.
Tuttavia, i nuovi temi a blocchi di WordPress costruiti sull’Editor del sito non utilizzano più i file template PHP come i temi classici, quindi non potete usare il PHP per personalizzare il Loop se utilizzate un tema a blocchi. Invece, questi nuovi temi a blocchi utilizzano uno speciale blocco “Query Loop” per personalizzare il Loop di WordPress.
Potete consultare il nostro elenco dei migliori temi a blocchi per vedere alcuni esempi di temi popolari che utilizzano questo approccio.
Di seguito illustreremo come utilizzare entrambi gli approcci per lavorare con il Loop di WordPress:
- Se state utilizzando un tema classico, userete il PHP per interagire con il Loop.
- Se state utilizzando un tema a blocchi, userete il metodo di blocco Query Loop per interagire con il Loop.
Se non sapete bene quale tipo di tema state utilizzando, potete consultare le opzioni nel menu Aspetto della vostra dashboard di WordPress:
- Se vedete altre opzioni come Personalizza, Widget e Editor dei file del tema, allora state utilizzando un tema classico.
- Se vedete un’opzione Editor senza le altre opzioni, di solito significa che state utilizzando un tema a blocchi.
Come utilizzare il Loop di WordPress con i temi classici (codice)
Se utilizzate un tema WordPress classico, lavorerete con il Loop di WordPress all’interno dei file template PHP del vostro tema.
Ecco un esempio di implementazione di base del Loop di WordPress:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title( '<h2>', '</h2>' );
the_post_thumbnail();
the_excerpt();
endwhile;
else:
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
endif;
?>
Per aiutarvi a capire cosa fa questo codice, lo divideremo in tre sezioni:
- Apertura del Loop
- Utilizzo dei tag del template per controllare il contenuto da mostrare
- Chiusura del ciclo
Poi ci addentreremo nell’argomento un po’ più avanzato dell’utilizzo di dichiarazioni condizionali per regolare il Loop in base a diverse situazioni.
Come iniziare il ciclo di WordPress
Per aprire il ciclo di WordPress, avrete a disposizione quattro elementi:
<?php
– indica al server web che utilizzerete PHP.if ( have_posts() )
– indica al server che deve verificare se nel database del vostro sito ci sono post che corrispondono alla query e, se ci sono, deve eseguire il codice seguente. Se non ci sono messaggi, potete usare un’istruzione else per aggiungere del testo di riserva, che tratteremo più avanti.while ( have_posts() )
– questo indica al server che deve continuare il ciclo finché ci sono messaggi da mostrare. Il limite è generalmente stabilito dalla scelta nell’area Impostazioni → Lettura. Ad esempio, se configurate il vostro sito in modo che mostri fino a 10 post per pagina, il server continuerà il ciclo per un massimo di 10 post (a patto che abbiate pubblicato almeno 10 post).the_post();
– questo indica al server di recuperare i dati di ogni post dal database del sito. Potete controllare la visualizzazione di questi dati utilizzando i tag template, di cui parleremo nella prossima sezione.
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
Come controllare il contenuto del Loop di WordPress
Una volta aperto il loop di WordPress, potete utilizzare i tag template per controllare le informazioni che volete includere in ogni post e il layout generale* di questi contenuti.
I tag del template che utilizzate all’interno del Loop saranno ripetuti per ogni post visualizzato.
Ecco alcuni dei tag template più comuni che potreste voler utilizzare:
the_title()
the_content()
the_excerpt()
the_post_thumbnail()
the_author()
next_post_link()
the_ID()
the_meta()
the_shortlink()
the_tags()
the_time()
previous_post_link()
the_category()
Se state creando siti WordPress più personalizzati, potete includere i dati dei campi personalizzati nel Loop di WordPress. Il modo più semplice per farlo è tramite un plugin come Advanced Custom Fields (ACF), Meta Box o Pods, che includono tutti una propria funzionalità per i tag template che potete utilizzare nel Loop di WordPress.
Ad esempio, vediamo la sintassi di un semplice loop che si limita a mostrare il titolo, la miniatura dell’immagine principale e l’estratto di ogni post.
Ecco come potrebbe apparire:
// per prima cosa, dobbiamo aprire il ciclo come abbiamo mostrato nella sezione precedente
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// ora, possiamo usare i tag dei template per controllare quali informazioni mostrare per ogni post
the_title( '<h2>', '</h2>' );
the_post_thumbnail();
the_excerpt();
Come terminare il Loop di WordPress
Per chiudere il Loop di WordPress, è necessario chiudere il ciclo while, l’istruzione if e il PHP.
Per gestire le situazioni in cui WordPress non è in grado di restituire alcun post, potete aggiungere un’istruzione else prima di chiudere l’istruzione if .
Ecco come si chiuderebbe il Loop per l’esempio precedente, con l’aggiunta dell’istruzione else per gestire le situazioni in cui nessun post corrisponde alla query.
// per prima cosa, dobbiamo aprire il ciclo come abbiamo mostrato nella sezione precedente
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// ora, possiamo usare i tag dei template per controllare quali informazioni mostrare per ogni post
the_title( '<h2>', '</h2>' );
the_post_thumbnail();
the_excerpt();
// una volta terminati i tag del template, possiamo ora chiudere il loop
endwhile;
else:
// questo indica al sito cosa fare se non ci sono messaggi che corrispondono alla query
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
endif;
?>
Usare i condizionali per controllare il comportamento nel Loop di WordPress
Una volta compresa la struttura di base del Loop, potete iniziare a utilizzarlo in modi più avanzati.
Uno dei punti migliori per iniziare è l’utilizzo delle dichiarazioni condizionali. Queste permettono di regolare facilmente il comportamento del Loop per diversi tipi di contenuti, come nel nostro esempio precedente in cui potreste utilizzare un layout per elencare i post della categoria “Interviste” e un altro per i post della categoria “Notizie”.
Ecco alcuni dei tag condizionali che potete utilizzare:
is_home()
is_admin()
is_single()
is_page()
is_page_template()
is_category()
oin_category()
is_tag()
is_author()
is_search()
is_404()
has_excerpt()
Se fate clic sui link qui sopra, potete vedere degli esempi di codice per modificare il Loop di WordPress per diversi tipi di condizionali.
Ad esempio, ecco come si potrebbe applicare uno stile diverso ai post della categoria con ID “3” utilizzando in_category e applicando un <div> diverso a questi post.
<?php
// Avviamo il loop.
if ( have_posts() ) :
while ( have_posts() ) : the_post();
/* * Verifica se il post corrente è in categoria 3.
* Se lo è, al div viene assegnata la classe CSS "post-category-three".
* Altrimenti, al div viene assegnata la classe CSS "post".
*/
if ( in_category( 3 ) ) : ?>
<div class="post-category-three">
<?php else : ?>
<div class="post">
<?php endif;
// Mostra il titolo del post.
the_title( '<h2>', ';</h2>' );
// Mostra un link ad altri post dello stesso autore.
printf( __( 'Posted by %s', 'textdomain' ), get_the_author_posts_link() );
// Mostra il contenuto del post in un div.
?>
<div class="entry">
<?php the_content() ?>
</div>
<?php
// Mostra un elenco separato da virgole delle categorie del post.
_e( 'Posted in ', 'textdomain' ); the_category( ', ' );
// chiude il primo box div con la classe "post" o "post-cat-three"
?>
</div>
<?php
// Interrompe il loop, ma consente una situazione di "if not posts".
endwhile;
else :
/*
* Il primo “if” verifica se ci sono messaggi da
* mostrare. Questa parte “else” dice cosa fare se non ce ne sono.
*/
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
// Interrompe completamente il loop.
endif;
?>
Come utilizzare il Loop di WordPress nei temi a blocchi (Editor del sito)
Come già accennato, i temi a blocchi di WordPress utilizzano l’Editor del sito per controllare i template del tema piuttosto che i file di template PHP.
Per questo motivo, non potete usare il PHP per personalizzare il Loop di WordPress se state usando un tema a blocchi. Al contrario, dovrete utilizzare il blocco Query Loop.
I principi di base sono comunque gli stessi.
In sostanza, userete il blocco Query Loop per aprire il ciclo. All’interno del blocco Query Loop c’è un contenitore Post Template e altri contenitori per la paginazione e per i “risultati mancanti”.
Poi, invece di usare i tag template come si fa con il PHP, aggiungerete dei blocchi WordPress Theme all’interno del contenitore Post Template per controllare il layout di ogni elemento del ciclo.
Come aggiungere il blocco Query Loop
Per iniziare, andate nell’Editor del sito (Aspetto → Editor) e create o modificate il template corrispondente. Potete anche aggiungere il Loop a un singolo contenuto, ad esempio una singola pagina in cui volete elencare i post.
In ogni caso, potete iniziare aggiungendo il blocco Query Loop. Poi, potete scegliere se utilizzare uno dei template di Loop esistenti nel vostro tema facendo clic su Choose o se partire da una tela vuota facendo clic su Start Blank.
Per questo esempio, sceglieremo l’opzione Start Blank.
A questo punto potete scegliere tra diverse varianti di partenza: l’opzione più semplice è quella di mostrare solo il titolo e il contenuto di ogni articolo.
Una volta fatto questo, potete utilizzare le impostazioni nella barra laterale del blocco Query Loop per controllare il contenuto che volete includere nel Loop (la “query”).
Per impostazione predefinita, vengono elencati i normali post, ma potete cambiare il tipo di post per elencare altri tipi di contenuti. Potete anche modificare l’ordine e utilizzare dei filtri per interrogare solo contenuti specifici, come ad esempio quelli appartenenti a una determinata categoria, provenienti da un determinato autore e così via.
Come personalizzare il template del Loop
Ora potete utilizzare i blocchi della sezione Tema per personalizzare ulteriormente il template del post all’interno del Query Loop. Anche in questo caso, questi blocchi hanno lo stesso scopo di base dei tag template nel codice PHP.
Ad esempio, se volete mostrare l’autore per ogni contenuto, potete aggiungere il blocco Nome autore nel punto in cui volete che appaia il nome dell’autore.
Troverete anche altri blocchi per elementi rilevanti, come Immagine in evidenza, Data, Categorie, Tag, ecc.
Se osservate lo schema, potrete vedere che tutti questi blocchi si trovano all’interno del gruppo Post Template.
Esistono anche altri gruppi per controllare la paginazione e le situazioni in cui la query non restituisce alcun risultato.
Suggerimenti per lavorare con il Loop di WordPress
Poiché il Loop è parte integrante di WordPress, qualsiasi errore o sbaglio può causare problemi al vostro sito. Questo è particolarmente vero se state lavorando con i template PHP, in quanto gli errori di sintassi potrebbero far comparire il messaggio “Si è verificato un errore critico sul vostro sito”.
Per evitare problemi, ecco un paio di consigli…
Sperimentare e imparare in un ambiente di sviluppo locale
Se è la prima volta che lavorate con il Loop di WordPress, probabilmente vorrete sperimentare e giocare con diversi concetti per capire meglio come funziona.
Per farlo in modo sicuro, potete utilizzare un ambiente di sviluppo locale di WordPress, che vi offre una sandbox sicura alimentata dal vostro computer locale.
Per creare facilmente siti WordPress locali per testare e imparare, potete utilizzare lo strumento gratuito DevKinsta.
Grazie al supporto per Windows e Mac, DevKinsta permette di creare facilmente tutti i siti di sviluppo locali di cui avete bisogno.
Lavorare in un ambiente di staging per i siti live
Se state lavorando sul Loop di WordPress per un sito WordPress live, consigliamo di fare tutto su un sito di staging prima di applicare le modifiche al vostro sito WordPress live.
Se avete il vostro sito WordPress su Kinsta, potete utilizzare lo strumento di staging integrato di Kinsta per apportare tutte le modifiche in una sandbox sicura.
Una volta verificato che tutto funzioni, potete facilmente trasferire le modifiche di staging alla versione live del vostro sito.
Plugin alternativi per lavorare direttamente con il Loop di WordPress
Se lavorare direttamente con il Loop di WordPress vi spaventa un po’, ci sono diversi plugin popolari che offrono modi alternativi per “mettere in loop” i contenuti senza dover usare il PHP o il blocco Query Loop.
Ecco alcuni plugin alternativi al Loop di WordPress da prendere in considerazione, anche se l’elenco non è completo.
Elementor Pro
Elementor è un popolare plugin di page builder visuale e drag-and-drop. Con Elementor Pro, potete accedere a tutte le funzionalità di creazione di temi per progettare i file di template del vostro tema utilizzando Elementor. Nel 2022, Elementor ha aggiunto la funzione Loop Builder a Elementor Pro, che permette di controllare e personalizzare i contenuti “in loop” utilizzando l’interfaccia visiva di Elementor.
Abbiamo scritto una guida completa all’uso di Elementor e molti altri contenuti su Elementor sul blog di Kinsta.
Bricks
Bricks è un altro popolare costruttore di siti visuali per WordPress. Tra i suoi numerosi strumenti di progettazione, include il suo costruttore di Query Loop che utilizza un approccio semplificato al codice, oltre a numerose opzioni aggiuntive nell’interfaccia grafica.
Abbiamo anche una guida sulla costruzione di siti WordPress con Bricks.
WP Show Posts
WP Show Posts non offre la stessa flessibilità dei due plugin precedenti. Tuttavia, se state cercando un modo semplice per elencare i post di WordPress in vari formati, potrebbe essere lo strumento più semplice per questo scopo.
È gratuito e proviene dallo stesso sviluppatore del popolare tema GeneratePress. Sebbene lo sviluppatore non aggiunga più nuove funzioni al plugin, continua a mantenerne le funzionalità esistenti.
Riepilogo
Per migliorare le vostre capacità di sviluppo di WordPress, è necessario capire come funziona il Loop di WordPress. Il Loop è parte integrante del modo in cui WordPress mostra i contenuti; imparando a usarlo avrete un maggiore controllo sulla visualizzazione dei contenuti del vostro sito.
Detto questo, i nuovi temi a blocchi di WordPress non si basano più su template PHP come i temi classici, quindi potreste non aver bisogno di usare il PHP per lavorare con il Loop. Invece, se state abbracciando il movimento dei temi a blocchi, userete il blocco Query Loop per ottenere effetti simili.
In ogni caso, imparare a usare il Loop di WordPress in modo più efficace darà i suoi frutti in futuro.
Dato che il Loop di WordPress è una parte fondamentale di WordPress, qualsiasi problema nel Loop potrebbe danneggiare il vostro sito. Per evitare problemi, vi consigliamo di imparare su un sito di sviluppo locale alimentato da DevKinsta o di utilizzare gli strumenti di staging offerti dall’hosting per WordPress di Kinsta per lavorare in un ambiente sicuro.
Lascia un commento