WordPress: gerarchia dei template files

Tags:
Argomento: Wordpress

WordPress: gerarchia dei template

Una delle prime difficoltà che si incontrano quando si comincia a sviluppare in WordPress, è quella di comprendere quando vengono utilizzate le differenti template presenti nel tema prescelto. Quando viene usata category.php e quando archive.php? Quali template sono obbligatorie e quali facoltative?In questo articolo vi parlo di una comoda risorsa visuale, presentata qualche tempo fa da WP tuts+.

WordPress gerarchia templates

Immagine originale su WP tuts+

L’interpretazione dello schema è immediata: nella prima colonna a sinistra è indicata la pagina alla quale ci troviamo. Queste pagine sono indicate utilizzando il tag condizionale corrispondente: ricordiamo che i tag condizionali sono funzioni messe a disposizione da WordPress, per essere usate nei template files, in modo da poter discriminare quale contenuto verrà visualizzato nella pagina a seconda di una certa condizione. Ad esempio, se desideraste far apparire un testo introduttivo sopra l’elenco dei post pubblicati, questo vorrete venga visualizzato solo se ci troviamo nella home del vostro blog (che contiene appunto l’elenco dei vostri articoli solitamente in ordine cronologico): in questo caso il tag condizionale is_home() è quello che farà per voi, esso restituisce True solo se la pagina corrente è appunto la home del blog.

Continuando a commentare la figura, vediamo un paio di esempi per comprendere come si usa. Se ad esempio ci troviamo su una pagina statica del sito in WordPress, e quindi il tag condizionale is_page() restituisce il valore True, prima di tutto verrà usata la template “custom-template.php”, ovvero una template specifica, da voi creata e assegnata in fase di editing a quella pagina; se questa manca verrebbe usata la template “page-slug.php”, ove appare lo slug univoco della pagina e quindi in successione “page-id.php” e “page.php”.

Se invece ci trovassimo in una pagina di archivio dove sono presenti tutti i post etichettati con il medesimo tag, e quindi la funzione is_tag() restituirebbe valore True, verrebbe prioritariamente usata la template “tag-slug.php”, in sua assenza la template “tag-id.php”, poi “tag.php” ed infine “archive.php”.

In sostanza WordPress utilizza sempre una logica fallback: in mancanza delle template prioritaria verrà usata via via quella a priorità inferiore.

Dalla figura si deduce anche che, teoricamente, solo la template index.php deve essere obbligatoriamente presente nel vostro tema in quanto essa viene usata di default per tutte le tipologie di pagina quando fossero assenti le template più specifiche.

Un altro schema sullo stesso tema è quello disegnato da Michelle Schulp:

template-hierarchy-retina-light

Immagine originale su Marktimemedia

Informazioni su

Carlo Bazzo è fondatore di Epysoft, una start up tecnologica con sede a Treviso e CTO di Hdemo Network Business Solutions.
Puoi seguire Carlo su Twitter, su Google+ o leggere le sue e-zine su Scoop It

Articoli Suggeriti