WordPress-templatehiërarchie voor blokthema's
De volledige templatehiërarchie voor blokthema's (FSE): voor elk type verzoek de geordende lijst met templates die WordPress zoekt, van meest specifiek eerst tot terugval op index.html. Het blok-tijdperk-equivalent van het klassieke hiërarchieschema.
Voor elke aanvraag zoekt WordPress deze templates in volgorde — het meest specifieke eerst — en stopt bij de eerste die bestaat in de map /templates van je thema. De keten eindigt altijd bij index.html.
Voorpagina
De voorpagina van de site, of die nu op je nieuwste berichten of op een statische pagina is ingesteld.
- front-page.html
- home.html
- index.html
front-page.html wint ongeacht de keuze onder Instellingen → Lezen. Als de voorpagina een statische pagina is en er geen front-page.html bestaat, valt het door naar de keten voor statische pagina's, niet naar home.html.
Overzicht van blogberichten
De pagina die je nieuwste berichten toont (de "berichtenpagina" onder Instellingen → Lezen).
- home.html
- index.html
Los bericht
Een afzonderlijk blogbericht.
- single-post-{slug}.html
- single-post.html
- single.html
- singular.html
- index.html
Los aangepast berichttype
Een afzonderlijk item van een aangepast berichttype (bijvoorbeeld een "boek").
- single-{post-type}-{slug}.html
- single-{post-type}.html
- single.html
- singular.html
- index.html
Voor een berichttype "book" met slug "dune": single-book-dune.html, daarna single-book.html, daarna single.html.
Statische pagina
Een gewone WordPress-pagina.
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
Pagina met een aangepaste template
Een pagina waaraan in het Template-paneel van de editor een aangepaste template is toegewezen.
- {custom-template}.html
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
Aangepaste templates worden gedeclareerd in de customTemplates-array van theme.json en staan in /templates. De toegewezen template wint van de hele pagina-keten.
Categorie-archief
Het archief met de berichten in één categorie.
- category-{slug}.html
- category-{id}.html
- category.html
- archive.html
- index.html
Tag-archief
Het archief met de berichten met één tag.
- tag-{slug}.html
- tag-{id}.html
- tag.html
- archive.html
- index.html
Archief van aangepaste taxonomie
Het archief voor een term in een aangepaste taxonomie.
- taxonomy-{taxonomy}-{term}.html
- taxonomy-{taxonomy}.html
- taxonomy.html
- archive.html
- index.html
Auteursarchief
Het archief met de berichten van één auteur.
- author-{nicename}.html
- author-{id}.html
- author.html
- archive.html
- index.html
Datumarchief
Een archief per jaar / maand / dag.
- date.html
- archive.html
- index.html
Archief van berichttype
Het archiefoverzicht voor een aangepast berichttype waarvoor has_archive is ingesteld.
- archive-{post-type}.html
- archive.html
- index.html
Zoekresultaten
De resultatenpagina van een zoekopdracht op de site.
- search.html
- index.html
404 (niet gevonden)
Wordt getoond wanneer geen enkele inhoud overeenkomt met de URL.
- 404.html
- index.html
Bijlagepagina
De pagina voor één mediabijlage.
- attachment.html
- single.html
- singular.html
- index.html
Veel sites schakelen bijlagepagina's helemaal uit (het is dunne inhoud). Als je ze behoudt, is dit de keten.
Privacybeleidpagina
De pagina die onder Instellingen als het privacybeleid van de site is ingesteld.
- page-privacy-policy.html
- privacy-policy.html
- page.html
- singular.html
- index.html
Hoe dit verschilt van de klassieke (PHP-)hiërarchie
- Templates zijn .html-bestanden in /templates, geen .php-bestanden in de themaroot. Er is geen single.php — het is single.html.
- Herbruikbare regio's (header, footer) zijn template-ONDERDELEN in /parts, waarnaar wordt verwezen met het wp:template-part-blok, niet met get_header() / get_footer() PHP-aanroepen.
- Er is geen get_template_part()-keten en geen get_header()/get_footer(). Samenstellen gebeurt met het Template Part-blok binnen de .html-bestanden.
- index.html is VERPLICHT. Een block theme zonder templates/index.html is geen geldig block theme — het is de verplichte laatste terugval voor elke route hierboven.
- Het thema wordt tot block theme bestempeld door de AANWEZIGHEID van templates/index.html plus een theme.json, niet door een of andere header-vlag.
- Je kunt al deze templates bewerken in de Site-editor (Weergave → Editor) en de wijzigingen opslaan in de database — die dan de bestanden van het thema OVERSCHRIJVEN totdat je de aanpassing wist. Dit verrast mensen die aan het debuggen zijn met de vraag "waarom doet mijn templatewijziging niets".