WordPressin template hierarchy käytännön esimerkeilläWordPressin template hierarchy on yksi järjestelmän voimakkaimmista mutta usein väärinymmärretyistä mekanismeista. Se määrittää, mikä PHP-tiedosto vastaa minkäkin URLin renderöinnistä, ja tekee sen ennalta määrätyn päätöspuun mukaan. Kun tämän logiikan ymmärtää, teeman rakentaminen muuttuu arvaamisesta hallituksi suunnitteluksi.

Template hierarchy ei ole mielipide. Se on sääntöjärjestelmä, jota WordPress noudattaa täsmällisesti jokaisella pyynnöllä.

Mikä template hierarchy oikeasti on

Template hierarchy on prioriteettilista. Kun WordPress käsittelee pyynnön, se:

  • tunnistaa pyynnön tyypin

  • muodostaa listan mahdollisista template-tiedostoista

  • käyttää listan ensimmäistä olemassa olevaa tiedostoa

Jos tiedostoa ei löydy, WordPress siirtyy seuraavaan vaihtoehtoon. Lopulta päädytään aina index.php:hen, jos mikään muu ei täsmää.

Peruslähtökohta: index.php

index.php on pakollinen tiedosto. Ilman sitä teema ei toimi. Se on:

  • viimeinen fallback

  • turvaverkko

  • usein liian yleinen

Hyvin rakennettu teema käyttää index.php:tä vain poikkeustapauksissa. Mitä enemmän spesifejä templateja, sitä hallitumpi lopputulos.

Etusivu käytännön esimerkillä

Staattinen etusivu

Jos asetuksissa on määritelty staattinen etusivu, WordPress etsii templateja tässä järjestyksessä:

  1. front-page.php

  2. page-{slug}.php

  3. page-{id}.php

  4. page.php

  5. index.php

Käytännön esimerkki:

  • haluat täysin räätälöidyn etusivun

  • luot front-page.php

  • muu sivuston rakenne ei vaikuta tähän lainkaan

front-page.php ohittaa kaiken muun.

Blogietusivu

Jos blogi on etusivu, järjestys on:

  1. home.php

  2. index.php

Tämä on yleinen kompastuskivi. home.php ei ole sama asia kuin front-page.php. Ne palvelevat eri käyttötapauksia.

Yksittäinen artikkeli (single post)

Kun avaat yksittäisen artikkelin, WordPress etsii:

  1. single-{posttype}.php

  2. single.php

  3. singular.php

  4. index.php

Käytännön esimerkki:

  • sinulla on custom post type project

  • luot tiedoston single-project.php

  • vain projektit käyttävät tätä templatea

Blogiartikkelit jatkavat käyttämään single.php.

Sivut (pages) ja kohdennus

Sivut ovat template hierarchyssa poikkeuksellisen joustavia.

WordPress etsii:

  1. page-{slug}.php

  2. page-{id}.php

  3. page.php

  4. singular.php

  5. index.php

Käytännön esimerkki:

  • sivu: /yhteystiedot

  • luot page-yhteystiedot.php

  • vain tämä sivu käyttää tiedostoa

Tämä mahdollistaa erittäin kohdennetut ratkaisut ilman ehtolauseita.

Arkistosivut käytännössä

Kategoriat

Kategoriasivulle WordPress etsii:

  1. category-{slug}.php

  2. category-{id}.php

  3. category.php

  4. archive.php

  5. index.php

Esimerkki:

  • kategoria: “uutiset”

  • category-uutiset.php

  • vain tämä kategoria saa oman rakenteen

Tagit

Tagit noudattavat samaa mallia:

  1. tag-{slug}.php

  2. tag-{id}.php

  3. tag.php

  4. archive.php

  5. index.php

Custom post type -arkistot

Custom post type -arkisto käyttää:

  1. archive-{posttype}.php

  2. archive.php

  3. index.php

Esimerkki:

  • post type: project

  • URL: /project/

  • template: archive-project.php

Tämä on usein parempi ratkaisu kuin yksi yleinen archive.php.

Hakutulokset ja virhesivut

Haku

Hakusivu:

  1. search.php

  2. index.php

Hakutulokset kannattaa lähes aina erottaa omaksi templateksi, koska:

  • rakenne poikkeaa arkistoista

  • UX-vaatimukset ovat erilaiset

404-sivu

404 käyttää:

  1. 404.php

  2. index.php

Hyvin tehty 404.php on käyttäjäkokemuksen, ei vain virheenkäsittelyn osa.

singular.php ja archive.php – väliportaat

singular.php ja archive.php ovat:

  • yleisiä välietappeja

  • hyödyllisiä fallbackeja

  • usein alihyödynnettyjä

Esimerkki:

  • kaikki yksittäiset sisällöt käyttävät samaa rakennetta

  • erot tehdään osissa, ei koko templatessa

Tämä vähentää koodin toistoa.

Template hierarchy vs ehdolliset tagit

Yleinen virhe on tehdä näin:

  • yksi page.php

  • kymmeniä if ( is_page() ) -ehtoja

Template hierarchy on puhtaampi ratkaisu:

  • vähemmän ehtoja

  • selkeämpi rakenne

  • helpompi ylläpito

Jos joudut jatkuvasti tarkistamaan kontekstia PHP:ssä, olet todennäköisesti ohittanut hierarkian mahdollisuudet.

Block-teemat ja hierarchy

Block-teemat eivät poista template hierarchya. Ne:

  • siirtävät osan logiikasta HTML- ja block-templatetiedostoihin

  • noudattavat silti samaa päätöspuuta

Ajatusmalli ei muutu, vain toteutustapa.

Yleisimmät virheet

Tyypillisiä virheitä ovat:

  • väärän tiedoston nimeäminen

  • home.php ja front-page.php sekoittaminen

  • liian yleinen archive.php

  • monimutkainen logiikka yhdessä templatessa

Template hierarchy toimii parhaiten, kun sitä käytetään ennalta, ei jälkikäteen korjaamaan rakennetta.

Milloin template hierarchy on onnistunut

Hyvin käytetty template hierarchy tarkoittaa, että:

  • tiedoston nimestä näkee heti sen tarkoituksen

  • uusia sivutyyppejä voi lisätä ilman refaktorointia

  • teema skaalautuu ilman ehtosotkua

Se tekee WordPress-teemasta järjestelmän, ei vain kokoelman PHP-tiedostoja.

Lopuksi: hierarchy on kartta, ei rajoite

WordPressin template hierarchy ei rajoita luovuutta. Se antaa kartan, jonka avulla monimutkainen sivustorakenne pysyy hallittavana.

Kun rakennat teeman hierarkian ehdoilla etkä sitä vastaan, koodi kevenee, virheet vähenevät ja WordPress alkaa tuntua siltä miltä sen on tarkoitus tuntua: ennustettavalta.