Naar de inhoud
Naslag

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.

  1. front-page.html
  2. home.html
  3. 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).

  1. home.html
  2. index.html

Los bericht

Een afzonderlijk blogbericht.

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

Los aangepast berichttype

Een afzonderlijk item van een aangepast berichttype (bijvoorbeeld een "boek").

  1. single-{post-type}-{slug}.html
  2. single-{post-type}.html
  3. single.html
  4. singular.html
  5. 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.

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

Pagina met een aangepaste template

Een pagina waaraan in het Template-paneel van de editor een aangepaste template is toegewezen.

  1. {custom-template}.html
  2. page-{slug}.html
  3. page-{id}.html
  4. page.html
  5. singular.html
  6. 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.

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

Tag-archief

Het archief met de berichten met één tag.

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

Archief van aangepaste taxonomie

Het archief voor een term in een aangepaste taxonomie.

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

Auteursarchief

Het archief met de berichten van één auteur.

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

Datumarchief

Een archief per jaar / maand / dag.

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

Archief van berichttype

Het archiefoverzicht voor een aangepast berichttype waarvoor has_archive is ingesteld.

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

Zoekresultaten

De resultatenpagina van een zoekopdracht op de site.

  1. search.html
  2. index.html

404 (niet gevonden)

Wordt getoond wanneer geen enkele inhoud overeenkomt met de URL.

  1. 404.html
  2. index.html

Bijlagepagina

De pagina voor één mediabijlage.

  1. attachment.html
  2. single.html
  3. singular.html
  4. 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.

  1. page-privacy-policy.html
  2. privacy-policy.html
  3. page.html
  4. singular.html
  5. 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".