Vai al contenuto
Riferimenti

Gerarchia dei template dei temi a blocchi di WordPress

La gerarchia completa dei template dei temi a blocchi (FSE): per ogni tipo di richiesta, l'elenco ordinato dei template che WordPress cerca, dal più specifico, con fallback su index.html. L'equivalente per l'era dei blocchi del classico schema della gerarchia.

Per ogni richiesta, WordPress cerca questi template nell'ordine indicato — prima i più specifici — e si ferma al primo che esiste nella cartella /templates del tuo tema. La catena termina sempre con index.html.

Prima pagina

La prima pagina del sito, sia che mostri gli ultimi articoli sia che sia impostata su una pagina statica.

  1. front-page.html
  2. home.html
  3. index.html

front-page.html ha la precedenza a prescindere dalla scelta in Impostazioni → Lettura. Se la prima pagina è una pagina statica e non esiste front-page.html, si passa alla catena della pagina statica, non a home.html.

Indice degli articoli del blog

La pagina che elenca gli ultimi articoli (la «pagina degli articoli» in Impostazioni → Lettura).

  1. home.html
  2. index.html

Singolo articolo

Un singolo articolo del blog.

  1. single-post-{slug}.html
  2. single-post.html
  3. single.html
  4. singular.html
  5. index.html

Singolo custom post type

Una singola voce di un custom post type (ad es. un «libro»).

  1. single-{post-type}-{slug}.html
  2. single-{post-type}.html
  3. single.html
  4. singular.html
  5. index.html

Per un post type «book» con slug «dune»: single-book-dune.html, poi single-book.html, poi single.html.

Pagina statica

Una normale pagina WordPress.

  1. page-{slug}.html
  2. page-{id}.html
  3. page.html
  4. singular.html
  5. index.html

Pagina con un template personalizzato

Una pagina a cui è stato assegnato un template personalizzato nel pannello Template dell'editor.

  1. {custom-template}.html
  2. page-{slug}.html
  3. page-{id}.html
  4. page.html
  5. singular.html
  6. index.html

I template personalizzati vengono dichiarati nell'array customTemplates di theme.json e risiedono in /templates. Quello assegnato ha la precedenza sull'intera catena della pagina.

Archivio categoria

L'archivio che elenca gli articoli di una categoria.

  1. category-{slug}.html
  2. category-{id}.html
  3. category.html
  4. archive.html
  5. index.html

Archivio tag

L'archivio che elenca gli articoli con un determinato tag.

  1. tag-{slug}.html
  2. tag-{id}.html
  3. tag.html
  4. archive.html
  5. index.html

Archivio tassonomia personalizzata

L'archivio di un termine di una tassonomia personalizzata.

  1. taxonomy-{taxonomy}-{term}.html
  2. taxonomy-{taxonomy}.html
  3. taxonomy.html
  4. archive.html
  5. index.html

Archivio autore

L'archivio degli articoli di un autore.

  1. author-{nicename}.html
  2. author-{id}.html
  3. author.html
  4. archive.html
  5. index.html

Archivio per data

Un archivio per anno / mese / giorno.

  1. date.html
  2. archive.html
  3. index.html

Archivio del post type

L'indice di archivio di un custom post type con has_archive impostato.

  1. archive-{post-type}.html
  2. archive.html
  3. index.html

Risultati di ricerca

La pagina dei risultati di una ricerca nel sito.

  1. search.html
  2. index.html

404 (non trovato)

Mostrata quando nessun contenuto corrisponde all'URL.

  1. 404.html
  2. index.html

Pagina allegato

La pagina di un singolo allegato multimediale.

  1. attachment.html
  2. single.html
  3. singular.html
  4. index.html

Molti siti disabilitano del tutto le pagine degli allegati (sono contenuti scarni). Se le mantieni, questa è la catena.

Pagina dell'informativa sulla privacy

La pagina impostata come informativa sulla privacy del sito nelle Impostazioni.

  1. page-privacy-policy.html
  2. privacy-policy.html
  3. page.html
  4. singular.html
  5. index.html

In cosa differisce dalla gerarchia classica (PHP)

  • I template sono file .html in /templates, non file .php nella radice del tema. Non esiste single.php: è single.html.
  • Le aree riutilizzabili (header, footer) sono PARTI di template in /parts, richiamate con il blocco wp:template-part, non con le chiamate PHP get_header() / get_footer().
  • Non esiste alcuna catena get_template_part() né get_header()/get_footer(). La composizione avviene con il blocco Parte di template all'interno dei file .html.
  • index.html è OBBLIGATORIO. Un block theme senza templates/index.html non è un block theme valido: è il fallback finale obbligatorio per ogni route sopra elencata.
  • Il tema viene dichiarato block theme dalla PRESENZA di templates/index.html più un theme.json, non da un qualche flag nell'header.
  • Puoi modificare uno qualsiasi di questi template nell'Editor del sito (Aspetto → Editor) e salvare le modifiche nel database, che a quel punto HANNO LA PRECEDENZA sui file del tema finché non annulli la personalizzazione. Questo spiazza chi sta cercando di capire «perché la mia modifica al template non ha alcun effetto».