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: