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.
- front-page.html
- home.html
- 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).
- home.html
- index.html
Singolo articolo
Un singolo articolo del blog.
- single-post-{slug}.html
- single-post.html
- single.html
- singular.html
- index.html
Singolo custom post type
Una singola voce di un custom post type (ad es. un «libro»).
- single-{post-type}-{slug}.html
- single-{post-type}.html
- single.html
- singular.html
- 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.
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
Pagina con un template personalizzato
Una pagina a cui è stato assegnato un template personalizzato nel pannello Template dell'editor.
- {custom-template}.html
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- 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.
- category-{slug}.html
- category-{id}.html
- category.html
- archive.html
- index.html
Archivio tag
L'archivio che elenca gli articoli con un determinato tag.
- tag-{slug}.html
- tag-{id}.html
- tag.html
- archive.html
- index.html
Archivio tassonomia personalizzata
L'archivio di un termine di una tassonomia personalizzata.
- taxonomy-{taxonomy}-{term}.html
- taxonomy-{taxonomy}.html
- taxonomy.html
- archive.html
- index.html
Archivio autore
L'archivio degli articoli di un autore.
- author-{nicename}.html
- author-{id}.html
- author.html
- archive.html
- index.html
Archivio per data
Un archivio per anno / mese / giorno.
- date.html
- archive.html
- index.html
Archivio del post type
L'indice di archivio di un custom post type con has_archive impostato.
- archive-{post-type}.html
- archive.html
- index.html
Risultati di ricerca
La pagina dei risultati di una ricerca nel sito.
- search.html
- index.html
404 (non trovato)
Mostrata quando nessun contenuto corrisponde all'URL.
- 404.html
- index.html
Pagina allegato
La pagina di un singolo allegato multimediale.
- attachment.html
- single.html
- singular.html
- 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.
- page-privacy-policy.html
- privacy-policy.html
- page.html
- singular.html
- 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».