13 Tema e gerarchia
Un errore frequente sta nel fatto che molti chiamano template il tema.
Un tema è una cartella che contiene numerosi file, alcuni dei quali sono template file, e che, per poter essere utilizzato, deve trovarsi nella directory wp-content/themes/ .
Immaginate di volere che l’home page sia uguale alle pagine index.php tranne che per l’aggiunta di un’immagine o un testo di benvenuto. Dovete usare un template home.php oltre a index.php? Sarebbe molto più comodo aggiungere un tag condizionale is_home() in index.php per ottenere le aggiunte nella sola home page. Lo stesso vale per i singoli post: se non c’è molta differenza tra la visualizzazione di un post singolo e quella della home page, potete utilizzare is_single() per modificare le parti che devono essere diverse.
Tipi di template files usati per diverse situazioni
- Home page/front page:
front-page.php ha la precedenza. Viene utilizzato quando una pagina statica è impostata come front page, ed è seguito da home.php e infine da index.php. - Post singoli:
single-X.php, dove X è il tipo di post (per esempio single-book.php se il tipo di post è “book”); c’è poi single.php e infine index.php. - Pagine:
per primo c’è il template di pagina selezionato, seguito da page-X.php dove X è lo slug della pagina, da page-Y.php (dove Y è l’ID della pagina), dal consueto page.php e infine da index.php. - Archivi delle categorie:
category-X.php (dove X è lo slug della categoria), da category-Y.php (dove Y è l’ID della categoria), da category.php, archive.php e infine da index.php. - Archivi dei tag:
tag-X.php (dove X è lo slug del tag), da tag-Y.php (dove Y è l’ID del tag), da tag.php, archive.php e infine da index.php. - Archivi delle tassonomie personalizzate:
taxonomy-X-Y.php (dove X è lo slug della tassonomia e Y quello del termine; per esempio, taxonomy-person-waldo.php è il termine “waldo” in “person”), da taxonomy-X-php (dove X è lo slug della tassonomia), da taxonomy.php, archive.php e infine da index.php. - Archivi dei tipi di post personalizzati:
archive-X.php (dove X è lo slug del tipo di post personalizzao), da archive.php e infine da index.php. - Archivi degli autori:
author-X.php (dove X è lo slug), da author-Y.php (dove Y è l’ID), da author.php, archive.php e infine da index.php. - Archivi delle date:
date.php, poi archive.php e infine index.php. - Risultati delle ricerche:
search.php e poi index.php. - 404 (Not Found):
404.php e poi index.php. - Allegati:
per il MIME type, come image.php per le immagini, video.php per i video, text.php per il testo e così via; quindi attachment.php, single-attachment.php, single.php e infine index.php.
Un tema non deve includere tutti i template file possibili, ma è buona norma includa solo quelli necessari.
Gerarchie
index.php è il template file di fallback per tutto, si potrebbe decidere di usare solo questo.
Analizzando per esempio le pagine, e vediamo la gerarchia con cui vengono cercate le pagine
- WordPress cercherà prima una pagina custom-template, chiamata anche pagina modello.
- Se non è presente passerà a cercare page-slug.php
- poi page-ID (ricordo che l’ID di una pagina lo si vede nell’url nella modifica o creazione della pagina)
- Non trovando nemmeno questo passerà page.php
- Ultima spiaggia index.php
Ecco una schema ancora più semplice con l’elemento richiamato (sulla sinistra) e il percorso gerarchico che WordPress cerca spostandoci verso destra. Ogni volta che un file php non viene trovato si ci sposta a destra fino ad arrivare a index.php: