Ciclo di WordPress: cos'è e cosa devi sapere al riguardo

Pubblicato: 2023-10-25

Se sei uno sviluppatore di temi WordPress, un programmatore o semplicemente un appassionato desideroso di imparare cos'è un loop WordPress, questo articolo fa per te! Senza ulteriori indugi, cominciamo dalle basi: cos’è un loop?

Il loop WordPress è un codice PHP che mostra i post di WordPress o semplicemente mette; viene utilizzato in vari temi per visualizzare i post su una determinata pagina web. Non solo funziona sulla maggior parte delle pagine che vedi, ma ti consente anche di modificarlo e personalizzarlo a tuo piacimento.

Questi loop del sito Web possono essere utilizzati per elencare i post in base al conteggio dei commenti, mostrare i post con immagini e così via.

Quando guardi il ciclo, puoi vedere che alcune funzioni vengono eseguite per impostazione predefinita per mostrare i post. Gli sviluppatori di temi possono utilizzare tali funzioni e tag di modello per personalizzare il modo in cui viene mostrato ciascun post nel loop.

Questi tag del modello funzionano solo all'interno del ciclo predefinito di WordPress e vengono utilizzati per formattare, organizzare e pubblicare i dati dei post.

Il loop di WordPress è senza dubbio la parte più cruciale del codice di WordPress e permettici di approfondire il funzionamento del loop del tuo sito web.

Ciclo di pagine WordPress per principianti

Come abbiamo già accennato, il post loop è un codice che restituisce tutte le informazioni che WordPress ha su uno o più post. Funziona in background attraverso ogni post e trova il database uno per uno, il che gli consente di fornire informazioni su tutti i post trovati.

Ecco un esempio di come funziona il loop through dei post di WordPress:

  1. inizi il ciclo,
  2. agire con ogni post o pagina trovata,
  3. chiudere il ciclo.

Questi tre passaggi rappresentano la logica di base dietro il ciclo. Da questo punto, puoi essere creativo e filtrare i post che hai trovato utilizzando la query. La query dice al ciclo cosa stiamo cercando. Nel nostro esempio, sarebbe simile a questo:

  1. definire cosa stiamo cercando,
  2. inizia il ciclo,
  3. agire con ogni post o pagina trovata,
  4. chiudere il ciclo.

Se hai esperienza con il codice PHP, potresti avere familiarità con la funzione "mentre" utilizzata nei cicli per eseguire la query del database e visualizzare dinamicamente le informazioni senza dover inserire manualmente ogni singola riga del database.

Il ciclo while di WordPress funziona allo stesso modo.

Esempio di un ciclo WordPress standard

Di seguito è riportato un esempio di un loop WordPress standard che può essere utilizzato su qualsiasi pagina.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

Dai un'occhiata alle funzioni have_posts() e the_post() . Il primo determina se ci sono post da mostrare, e il secondo imposta dati e puntatori interni che aiutano la funzione have_posts() .

Se non c'è nulla da mostrare, la funzione dovrebbe visualizzare un messaggio che informa gli utenti.

Se ci sono i post che stiamo cercando, il loop li visualizzerà uno per uno.

Ecco, prendi un blocco di codice che mostrerà effettivamente i post, offriamo noi!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

Il contenuto mostrato qui è determinato dalla query di cui abbiamo già parlato e il modo in cui tale contenuto viene mostrato dipende dal ciclo. Questa quantità di personalizzazione è fantastica ed è ciò che distingue WordPress.

Ottimo lavoro! Ora sai cos'è un post loop!

Utilizzo del codice per modificare la query principale

Prima di iniziare, dobbiamo avvisarti che la modifica della query principale può avere conseguenze indesiderate se non sai cosa stai facendo. Fai attenzione mentre sperimenti!

Dobbiamo guardare gli hook se vogliamo modificare la funzionalità principale. Gli hook ci consentono di modificare la lunghezza del testo, modificare la schermata di accesso, riformulare i messaggi di errore, modificare i tipi di post personalizzati e molto altro ancora.

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

Tieni presente che utilizziamo l'hook pre_get_post per modificare il parametro della query principale prima che venga eseguita. Il codice qui sopra fa la stessa cosa di quello precedente, ma questa volta esclude la categoria 92 dalla nostra home page. Pertanto, la query principale viene modificata

Dai un'occhiata alle funzioni is_home() e is_main_query() . Sono qui per assicurarsi che la query venga modificata solo nella home page e se è la query principale.

Ecco un altro codice che può essere utile in un ciclo di blog WordPress.

Diciamo che un autore sul tuo sito web ha plagiato alcuni (o tutti) i suoi contenuti e desideri rimuovere tutti i suoi post in modo permanente o fino alla risoluzione del problema.

Questo può essere fatto aggiungendo un codice come questo:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

Con questa funzione condizionale rimuovi il post dell'autore sia dal tuo sito web che dal tuo backend. Puoi trovare tutti i tag condizionali nel WordPress Codex. Ecco come dovrebbe apparire l'ultimo codice alla fine:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

Domande frequenti sul ciclo WordPress

Qual è il ciclo di WordPress, comunque?

Oh cavolo, questo mi riporta indietro! Quindi, fondamentalmente, il loop WordPress è il motore di WP che visualizza i contenuti dal database del tuo sito.

È il cuore di molti modelli WP e indica al sistema quali post o pagine mostrare e in quale ordine. Consideralo come il DJ della tua festa WordPress, che sceglie i brani (o i post) giusti per i tuoi ospiti.

Perché il loop è così essenziale nello sviluppo del tema?

Ah, sviluppo del tema , un puzzle divertente ogni volta! Il loop è come la spina dorsale di un tema WordPress. Senza di esso, il tuo tema sarebbe un film muto senza trama.

Recupera il contenuto in base ai parametri WP_Query e, tramite i tag modello , puoi personalizzare cosa e come viene visualizzato il contenuto. Hai mai sentito parlare di temi con stili speciali per determinati post? Sì, questa è la magia del loop all'opera.

In che modo WP_Query si riferisce al loop?

Va bene, tuffati qui con me. WP_Query è la classe che definisce e recupera il contenuto. Il ciclo passa quindi attraverso i risultati restituiti da WP_Query.

Pensa a WP_Query come allo chef che prepara i piatti, mentre il loop li serve ai tuoi ospiti. E con tipi di post e tassonomie personalizzati , questo chef può preparare una gamma impressionante di piatti!

Qual è la differenza tra have_posts() e the_post()?

Domanda classica! have_posts() controlla se ci sono post rimasti nella query da scorrere. È come chiedere: "Ehi, ci sono altre canzoni in quella playlist?"

Nel frattempo, the_post() imposta il post corrente, quindi sei pronto per visualizzarne i dettagli. È come premere play sulla traccia successiva. Entrambi sono estremamente cruciali nella danza del loop.

Come posso personalizzare quali post verranno visualizzati nel loop?

Ah, il potere della personalizzazione! Per modificare i post visualizzati, modifica i parametri WP_Query o utilizza il filtro pre_get_posts .

Che si tratti di un ciclo di categorie , di tag o di qualsiasi altra query personalizzata , c'è tantissimo che puoi fare. Vuoi mostrare i post di una determinata categoria? O magari ordinarli in base a un campo personalizzato ? Il mondo è la tua ostrica!

Posso avere più loop in una pagina?

Puoi scommetterci! I cicli multipli sono una cosa, soprattutto quando desideri sezioni diverse, come un elenco di articoli principale seguito da una barra laterale con i post recenti.

Devi solo reimpostare il ciclo con wp_reset_postdata() dopo ogni WP_Query personalizzato. E con le parti del modello , è ancora più organizzato. Ricorda solo di non esagerare: a nessuno piace una festa disordinata!

Cosa sono i tag condizionali nel contesto del ciclo?

Quindi, i tag condizionali sono i guardiani del ciclo. Ti consentono di controllare dove e quando visualizzare determinati contenuti.

Potresti usarli per mostrare un contenuto solo su singoli post, o forse solo in una determinata tassonomia . Sono come i buttafuori del tuo club WP, decidono chi entra in base alla lista degli invitati.

Come aggiungo l'impaginazione al ciclo?

Ah, l'impaginazione, l'arte di non sopraffare i tuoi visitatori! Utilizzando le funzioni di impaginazione , puoi suddividere i tuoi post in più pagine.

Invece di mostrare un elenco infinito di post, dai una pausa ai tuoi utenti. Funzioni come paginate_links() o i classici link “successivo e precedente” aiutano in questo. Perché, siamo sinceri, nessuno vuole scorrere per sempre.

Perché mai dovrei aver bisogno di modificare la query principale?

Bravo! A volte, le impostazioni predefinite semplicemente non bastano. Forse vuoi che la tua home page mostri solo un tipo di post personalizzato specifico o escluda determinate categorie.

Utilizzando l'azione pre_get_posts , puoi modificare la query principale senza scriverne una nuova. È come regolare le impostazioni principali del tuo stereo per ottenere un suono perfetto.

Cosa succede se si verifica un problema con il mio loop?

Oof, ci sono stato! Se si verifica un intoppo nel ciclo, il tuo sito potrebbe non mostrare alcun contenuto o, peggio ancora, generare errori. Fai sempre il backup prima di armeggiare. Controlla i parametri WP_Query e la gerarchia dei modelli .

E se tutto il resto fallisce, il WordPress Codex e i forum della community sono miniere d’oro per la risoluzione dei problemi. Ricorda, ogni sviluppatore deve affrontare un ciclo glitch almeno una volta. L'hai capito!

Pensieri finali sul ciclo di WordPress

Usare il loop di WordPress è un ottimo modo per personalizzare i tuoi post, le tue pagine o, in poche parole, il tuo sito web. Il ciclo richiede che tu abbia una conoscenza di base di come funziona WordPress e della logica del codice.

A meno che tu non voglia fare un test rapido, non ti consigliamo di utilizzare la funzione query_posts(). Puoi utilizzare vari hook nel caso in cui sia necessario modificare la query originale. Siate sempre cauti quando modificate il codice del loop WordPress.

Ci auguriamo che questo articolo sia stato un buon primo passo verso la padronanza del loop WordPress!

Se ti è piaciuto questo articolo sul loop di WordPress, dovresti leggere anche questi:

  • Errore 504 in WordPress: come risolverlo
  • 12 suggerimenti per creare un plugin o un tema WordPress Premium di successo
  • Come sfruttare la memorizzazione nella cache del browser in WordPress? Passaggi da seguire