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.phpPeruslähtökohta: index.php
index.php-
viimeinen fallback
-
turvaverkko
-
usein liian yleinen
Hyvin rakennettu teema käyttää
index.phpEtusivu 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.phpBlogietusivu
Jos blogi on etusivu, järjestys on:
-
home.php -
index.php
Tämä on yleinen kompastuskivi.
home.phpfront-page.phpYksittä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.phpSivut (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.phpHakutulokset 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.phpsingular.php ja archive.php – väliportaat
singular.phparchive.php-
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ä
-ehtojaif ( is_page() )
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
-
ja
home.phpsekoittaminenfront-page.php -
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.
