smontiamo wordpress: il loop

Come avevamo già detto nel precedente articolo a riguardo, il Loop è una porzione di codice che rappresenta il cuore dei nostri temi in WordPress:
Che cosa intendiamo con Loop :
nella musica elettronica un loop è un campione che si ripete;
in informatica, un loop è una sequenza di comandi che viene eseguita diverse volte, ma è scritta una volta sola.
fonte Wikipedia

Loop rappresenta una stringa di codice all’interno dei file del tema che interroga il database ed estrae gli articoli per visualizzarli nel blog, questa interrogazione viene ripetuta ciclicamente e si arresta nel caso non trovi nulla o ad un limite impostato (di default 10), pertanto se nel nostro blog abbiamo pubblicato centinaia di articoli, questo nella home page mostrerà solo gli ultimi 10, e suddividerà gli altri in blocchi di 10 (è possibile modificare questo numero dal menù Impostazioni/Lettura)
il Loop non è contenuto solo nel file Index.php ma in tutti quei file che estraggono articoli dal database,
il file single.php che visualizza un unico singolo post
il file page.php che edita i contenuti di una pagina
il file search.php che visualizza i risultati di una ricerca
il file archive.php che visualizza un elenco di archivi
tutti questi file sono di norma contenuti in un tema standard di wordpress, anche per l’effetto della gerarchia dei template è necessario solo l’index.php.

possiamo creare nuovi file di pagina (template) con il proprio loop

vediamo il file loop nel tema di default

il Loop inizia con <?php if (have_posts()) : ?>
e termina <?php endif; ?>

index_loop.jpg

cosa troviamo al suo interno e che cosa fa:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

con questa stringa interroga il database chiedendo se ci sono degli articoli da visualizzare

<div <?php post_class(); ?> id=”post-<?php the_ID(); ?>”>
crea un div al quale affida una classe univoca relativa al numero di id tale funzione può tornare utile per formattare particolari articoli tramite css


<h2><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php printf(__(‘Permanent Link to %s’, ‘kubrick’), the_title_attribute(‘echo=0’)); ?>”>

crea un link permanente all’articolo

<?php the_title(); ?></a></h2>
e inserisce all’interno del link il titolo dell’articolo

<small><?php the_time(__(‘F jS, Y’, ‘kubrick’)) ?> <!– by <?php the_author() ?> –></small>
stampa la data di pubblicazione dell’articolo e volendo l’autore (togliendo i tag di commento <!– –> )

<div> <?php the_content(__(‘Read the rest of this entry &raquo;’, ‘kubrick’)); ?></div>
stampa il contenuto dell’articolo, volendo è possibile stampare solamente una breve anteprima dell’articolo sostituendo the_content con the_excerpt
le stringhe che seguono permettono di dare una serie di informazioni sull’articolo

<p><?php the_tags(__(‘Tags:’, ‘kubrick’) . ‘ ‘, ‘, ‘, ‘<br />’); ?>
visualizza i tag applicati all’articolo

<?php printf(__(‘Posted in %s’, ‘kubrick’), get_the_category_list(‘, ‘)); ?> |
visualizza le categorie di appartenenza

<?php edit_post_link(__(‘Edit’, ‘kubrick’), ”, ‘ | ‘); ?>
visualizza il tasto modifica nel caso un amministratore sia loggiato

<?php comments_popup_link(__(‘No Comments »’, ‘kubrick’), __(‘1 Comment »’, ‘kubrick’), __(‘% Comments »’, ‘kubrick’), ”, __(‘Comments Closed’, ‘kubrick’) ); ?></p></div>
visualizza lo stato dei commenti all’articolo

<?php endwhile; ?>

endwhile chiude il ciclo di interrogazione del database, e permette di visualizzare l’elenco degli articoli nella nostra homepage

<div>
<div><?php next_posts_link(__(‘&laquo; Older Entries’, ‘kubrick’)) ?></div>
<div><?php previous_posts_link(__(‘Newer Entries &raquo;’, ‘kubrick’)) ?></div>
</div>

se gli articoli sono in numero maggiore rispetto ai valori impostati nella visualizzazione della pagina queste stringhe permettono di visualizzare un navigatore tra le varie pagine

<?php else : ?>
<h2><?php _e(‘Not Found’, ‘kubrick’); ?></h2>
<p><?php _e(‘Sorry, but you are looking for something that isn’t here.’, ‘kubrick’); ?></p>
<?php include (TEMPLATEPATH . “/searchform.php”); ?>

se invece le ricerche non portano a nessun risultato viene visualizzato un messaggio di cortesia e il form per una ricerca

<?php endif; ?>
quindi si chiude il tutto

Come già citato il Loop è contenuto in altri file del tema default di wordpress, kubrick, e permette di estrarre gli articoli, in realtà un tema di wp potrebbe funzionare benissimo solo con il file index.php senza la necessità di altri file che contengano il Loop.

Nelle prossimo articolo vedremo come sono organizzati tra loro i vari file di loop e in particolare la loro scala gerarchica

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...