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ä:
-
front-page.php -
page-{slug}.php -
page-{id}.php -
page.php -
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:
-
home.php -
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:
-
single-{posttype}.php -
single.php -
singular.php -
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:
-
page-{slug}.php -
page-{id}.php -
page.php -
singular.php -
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:
-
category-{slug}.php -
category-{id}.php -
category.php -
archive.php -
index.php
Esimerkki:
-
kategoria: “uutiset”
-
category-uutiset.php -
vain tämä kategoria saa oman rakenteen
Tagit
Tagit noudattavat samaa mallia:
-
tag-{slug}.php -
tag-{id}.php -
tag.php -
archive.php -
index.php
Custom post type -arkistot
Custom post type -arkisto käyttää:
-
archive-{posttype}.php -
archive.php -
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:
-
search.php -
index.php
Hakutulokset kannattaa lähes aina erottaa omaksi templateksi, koska:
-
rakenne poikkeaa arkistoista
-
UX-vaatimukset ovat erilaiset
404-sivu
404 käyttää:
-
404.php -
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.phpjafront-page.phpsekoittaminen -
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.
