In questo tutorial per WordPress andrai a vedere e comprendere i concetti di base del cosidetto loop e le funzioni fondamentali di WordPress per creare una serie di post nella propria pagina.
Loop in inglese significa anello e identifica qualcosa che si ripete compiendo una certa azione un determinato numero di volte, questo è l’anima di un qualsiasi template di WordPress, serve per richiamare una serie di post e mostrarli in una pagina web che sia essa l’index.php o qualsiasi altra.

In realtà il loop è un concetto molto più ampio nel campo della programmazione e si può creare con diversi linguaggi non solo con PHP come nel caso di WordPress, ma l’utilizzo che ne viene fatto su WP è strettamente legato al fatto di richiamare articoli dal database in cui vengono salvati.
Qui di seguito la struttura portante di un loop, per iniziare puoi copiare queste istruzioni per esempio nel file index.php dell tuo tema WordPress.
<?php if ( have_posts( ) ) : while ( have_posts() ) : the_post(); ?> // Contenuto del loop <?php endwhile; else: ?> // Qui puoi inserire un messaggio nel caso manchi il post. <?php endif; ?> // Fine del loop
il codice PHP scritto sopra si può tradurre in questa maniera: Se esistono dei post salvati all’interno del database allora prendi questi post e mostrali, per decidere il numero di volte che questo loop deve ripetersi puoi scegliere il numero di post da mostrare nel pannello Impostazioni>lettura e impostare un numero per esempio su FMD sono 10 post; Questo vuol dire che, il loop, una volta giunto al suo termine ripeterà la stessa azione specificata al suo interno per 10 volte, se nel tuo blog avrai 8 post pubblicati ne verranno mostrati solo 8 ma se ne avrai 12 il loop ne mostrerà comunque 10 a meno che tu non voglia cambiare il valore dal pannello Impostazioni>Lettura come fatto prima.
Ora il loop è impostato ma se proverai a caricare la tua pagina web non troverai nessun post, questo perchè ora dobbiamo riempire il contenuto del loop con le funzioni di WordPress che intendiamo usare.
Facciamo l’esempio di voler mostrare per ogni articolo:
the_title();the_author();the_post_thumbnail();the_post_thumbnail();Le funzioni sopra sono parte integrante di WordPress e sono quelle che da inserire all’interno del loop, quindi:
<?php if ( have_posts( ) ) : while ( have_posts() ) : the_post(); ?> // Richiamo il titolo del post all'interno del tag h1 e per collegralo con un link all'articolo completo uso la funzione the_permalink(); nell'attriburo href del tag html a <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> // Richiamo un estratto del contenuto testuale del post <div> <p><?php the_excerpt(); ?></p> <?php the_post_thumbnail('thumbnail'); ?> </div> // Richiamo un estratto del contenuto testuale del post <span>Articolo scritto da <?php the_author('') ?></span> <?php endwhile; else: ?> <p>Nessun post presente nel Database o che soddisfi la tua richiesta.</p> <?php endif; ?>
Ora rimane da controllare una ultima cosa, ovvero se il tuo tema ha abilitata la possibilittà di scegliere una immagine di anteprima da richiamare per ogni articolo, per controllare prova ad andare nella pagina Articoli > Aggiungi nuovo e controllare che in basso a destra ci sia il pannello immagine in evidenza, nel caso sia presente vuol dire che il tuo tema supporta questo tipo di caratteristica e quindi ti basterà inserire, cliccando su imposta immagine in evidenza, la tua immagina che verrà richiamata tramite la funzione inserita nel loop the_post_thumbnail('thumbnail');
Nel caso invece questo pannello non sia presente devi attivarlo aprendo o creando il file function.php nella cartella principale del tuo tema WordPress e inserire questa istruzione
... add_theme_support( 'post-thumbnails' ); ...
Dopo aver salvato questo file deve comparire il menu mostrato sopra permettendoti di inserire l’immagine di anteprima per post.
Ora il loop è concluso e funzionante e i tuoi post saranno mostrati nella pagina in cui hai inserito il loop, come ultima cosa rimane modificarne l’aspetto utilizzando i CSS.
Ciao Francesco,
avrei bisogno di creare la stessa situazione ma, invece di essere post, devono essere estratti di pagine statiche di wordpress…
Quindi una pagina statica che al suo interno richiama i riassunti di altre pagine statiche!!!
E’ possibile?
Grazie per il tuo aiuto
Ciao Federica,
Prova ad inserire al posto del loop questo tipo di loop sotto che utilizza la funzione query_post
Ciao Francesco,
grazie per l’aiuto
Ho provato ma, mi viene restituito un errore:
Parse error: syntax error, unexpected ‘,’ in /wp-content/themes/catalyst/lib/functions/catalyst-hook-boxes.php(69) : eval()’d code on line 2
Federica scusa per l’errore, prova a copiare e incollare questo nuovo codice nella pagina dove vuoi che compaia il loop di pagine, vedrai che funzionerà:
Ciao Francesco,
complimenti per il post. Vorrei chiederti un consiglio a riguardo? Il loop che tu descrivi può essere utilizzato per mostrare gli ultimi post all’interno di una home page statica?
Mi spiego meglio, sto cercando di creare un home page con del contenuto scritto da me + una sezione con un’anteprima degli ultimi 5 post scritti. Una volta creata l’home page ed assegnato un template classico (ad es riprendendo quello di page.php) posso all’interno della pagina utilizzare il tuo codice per visualizzare l’anteprima dei post?
Inoltre non avendo immagini in veidenza nei post ma avendo immagini all’interno delgi articoli cosa posso utilizzare per far visualizzare quelle mmagini? (immagino che the_post_thumbnail non funzioni)
Ciao Stefano si certo l’importante è che tu inserisca il loop anche nella pagina statica
Ciao Stefano,
volevo chiederti un aiutino… non so pero se è questa la discussione più appropiata,
dovrei inserire nei post un link come dire…. dinamico.
che si completa con il titolo del post, esempio:
Post titolo:ricetta italiana
link: http://www.esempio.com/esempio.php/ricettaitaliana
dovrei usare la variabile del titolo ma come?
Grazie in anticipo.
Buonaserata
Devi andare nel pannello admin della tua installaziondi di WordPress, cliccare su Impostazioni>Permalink e poi selezionare la voce su nome articolo, oppure struttura personalizzata e poi utilizzi i parametri preimpostati da wordpress per fare in modo che compaia il link come più preferisci.