Quando l'utente clicca su una voce di menu, il client invia al server una query string in base alla quale WordPress seleziona i contenuti dal database e sceglie il template da utilizzare per generare la pagina, seguendo la rigorosa logica della Template Hierarchy.
Il Loop: introduzione
Sebbene non esistano regole generali sulla struttura che deve avere un template file, generalmente questo non manca dei tag get_header()
, get_sidebar()
e get_footer()
, che includono le parti della pagina e del ciclo iterativo (Loop) che accede al database e lancia a video i contenuti:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
...
<?php endwhile; ?>
...
<?php endif; ?>
Il Loop genera quindi un elenco di articoli, il cui markup dipende dalle decisioni di chi sviluppa il tema. Per ogni articolo potrà essere visualizzato un estratto del contenuto principale o un testo alternativo (excerpt); potrà essere visualizzata o meno un'immagine di anteprima (post thumbnail); potranno essere visualizzate le categorie, i tag, la data di pubblicazione, l'autore e tutti i possibili metadati. Tutte queste opzioni devono essere attentamente vagliate quando si progetta un tema.
Quelli che seguono sono i principali template da tenere in considerazione quando si progetta un tema.
Il file index.php
index.php
costituisce il template principale di un tema, sebbene sia allo stesso tempo quel template cui WordPress ricorre solo come soluzione di fallback, ossia quando mancano template specifici per il tipo di richiesta del client.
Proprio per questa sua caratteristica, il file index.php
deve essere adatto a generare ogni tipo di pagina, dagli archivi di notizie, agli articoli singoli fino alle pagine statiche.
Gli archivi di notizie
Per WordPress un archivio è un elenco di post. L'utente può chiedere i post pubblicati in un dato periodo, creati da un determinato autore, appartenenti ad una certa categoria, o etichettati con uno specifico tag. In tutti questi casi viene richiesta una pagina d'archivio. Qualora non esista un template più specifico per il tipo di pagina richiesta, WordPress cercherà il generico file di archivio archive.php
(in mancanza del quale tornerà al file index.php
).
Normalmente il template archive.php
è simile al file index.php
, avendo anch'esso lo scopo di fornire un elenco di articoli.
I template specifici: categorie, tag, autori
Esistono numerosi tipi di archivi, e WordPress permette di creare una pagina specifica per ognuna delle varie tipologie. Si avranno, quindi, i seguenti template:
author.php
category.php
date.php
tag.php
taxonomy.php
La specificità può essere ancora maggiore: è possibile creare, infatti, template diversi per ogni categoria/autore/tag/tassonomia, aggiungendo un suffisso al nome del file. Così, ad esempio, per le categorie si avranno i seguenti template:
category.php
category-$id.php
category-$slug.php
Allo stesso modo, per i tag si avrà:
tag.php
tag-$id.php
tag-$slug.php
L'elenco dei template è lungo, e si rinvia ancora al Codex per ogni utile approfondimento.
Post singoli e pagine statiche
Oltre che per gli archivi, è possibile creare template adatti alla visualizzazione di singoli contenuti, che possono essere articoli del blog, pagine statiche, attachment, e post personalizzati.
In questo caso la struttura del template sarà sensibilmente diversa dai file di archivio, sebbene in entrambi i casi saranno presenti i tag get_header()
, get_sidebar()
e get_footer()
, oltre che, ovviamente, il Loop, che in questo caso manderà a video un solo elemento.
Per i singoli contenuti, WordPress dispone dei seguenti template:
attachment.php
page.php
single.php
custom.php
Anche questa volta è possibile creare template più specifici. Nel caso dei post, avremo:
single.php
single-$post.php
single-$posttype.php
Come prima, si rinvia al Codex per la descrizione analitica dei template.
Altri template
WordPress dispone di altri template, che vanno a completare il mosaico permettendo un controllo assoluto dell'aspetto del sito.
- I template
front-page.php
ehome.php
sono utilizzati per la visualizzazione della pagina iniziale: il primo nel caso di una pagina statica, il secondo nel caso in cui si voglia un template più specifico del fileindex.php
; - Il template
404.php
è destinato alle pagine di errore; search.php
mostra i risultati di una ricerca interna al sito;comments-popup.php
genera una finestra di popup per i commenti.
Conclusioni e riferimenti
In questo capitolo si è voluta offrire una panoramica dei template file di WordPress e si è fatto riferimento ai seguenti articoli del Codex:
Nel prossimo capitolo si presenteranno le funzioni del framework che permettono di creare la struttura HTML dei template file.