WordPress näyttää pinnalta blogialustalta, mutta konepellin alla se on varsinainen sisältömoottori. Artikkelit ja sivut ovat vain oletusratkaisuja. Todellinen voima avautuu, kun rakennetaan omia sisältötyyppejä, eli Custom Post Typeja (CPT).
- Mikä Custom Post Type oikeastaan on?
Teknisesti Custom Post Type on vain uusi post_type WordPressin tietokannassa. Käytännössä se tarkoittaa:...
- Miksi käyttää CPT:tä sivujen sijaan?
Tämä on klassinen kysymys....
- Rekisteröinnin ydin: register_post_type()
Custom Post Type luodaan rekisteröimällä se WordPressiin. Tämä tapahtuu yleensä teeman functions.php-tiedostossa tai omassa lisäosassa....
- Keskeiset parametrit
Tämä määrittää näkyvyyden....
- public
Tämä määrittää näkyvyyden....
- has_archive
Mahdollistaa arkistosivun....
- rewrite
Määrittää URL-rakenteen....
- supports
Määrittää editoriominaisuudet....
- Labels: admin-käyttöliittymän kieli
Labels määrittävät, miten CPT näkyy hallintapaneelissa....
- Taksonomiat: sisällön luokittelu
CPT ilman taksonomioita on usein vasta puolikas ratkaisu....
- Template-logiikka
WordPress käyttää template hierarchy -järjestelmää....
- Custom Fields ja metatieto
Todellinen joustavuus syntyy lisäkentistä....
- CPT ja suorituskyky
Hyvin rakennettu CPT voi jopa parantaa suorituskykyä....
- Yleiset virheet
Kun CPT sidotaan teemaan, teeman vaihto voi rikkoa sisällön logiikan....
- CPT teeman sisällä ilman lisäosaa
Kun CPT sidotaan teemaan, teeman vaihto voi rikkoa sisällön logiikan....
- Liiallinen meta-datan käyttö
wp_postmeta ei ole ääretön leikkikenttä. Rakenteellinen data voi joskus ansaita oman taulun....
- URL-rakenteen unohtaminen
Slugit, rewrite-säännöt ja arkistot vaikuttavat enemmän kuin miltä ensi silmäyksellä näyttää....
- Milloin CPT:tä ei kannata käyttää?
Jos sisältö:...
- Lopuksi
Custom Post Type ei ole WordPress-temppu. Se on sisällön arkkitehtuuria....
- Aiheeseen sopivia artikkeleita
Kun haluat erottaa sisällön loogisesti – esimerkiksi referenssit, tuotteet, tapahtumat tai tiimin jäsenet – CPT ei ole vain siisti ratkaisu. Se on arkkitehtonisesti oikea ratkaisu.
Mikä Custom Post Type oikeastaan on?
Teknisesti Custom Post Type on vain uusi post_type WordPressin tietokannassa. Käytännössä se tarkoittaa:
-
Oma sisältörakenne
-
Oma admin-näkymä
-
Oma URL-rakenne
-
Mahdollisuus omiin kenttiin ja taksonomioihin
WordPress ei tee eroa “artikkelin” ja “tuotteen” välillä filosofisesti. Molemmat ovat rivejä wp_posts-taulussa.
Erot syntyvät rekisteröinnissä.
Miksi käyttää CPT:tä sivujen sijaan?
Tämä on klassinen kysymys.
Sivut sopivat hyvin staattiseen sisältöön. CPT:t sopivat, kun sisältö:
-
Toistuu rakenteellisesti
-
Tarvitsee listauksia
-
Tarvitsee suodattamista
-
Tarvitsee omia kenttiä
Jos rakennat 50 referenssiä sivuina, joudut lopulta taistelemaan järjestelmän logiikkaa vastaan.
CPT antaa WordPressille semanttisen vihjeen: “Tämä ei ole tavallinen sivu.”
Rekisteröinnin ydin: register_post_type()
Custom Post Type luodaan rekisteröimällä se WordPressiin. Tämä tapahtuu yleensä teeman functions.php-tiedostossa tai omassa lisäosassa.
Perusrunko näyttää tältä:
function oma_sisaltotyyppi() {
register_post_type('referenssit',
array(
'labels' => array(
'name' => 'Referenssit',
'singular_name' => 'Referenssi'
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'referenssit'),
'supports' => array('title', 'editor', 'thumbnail')
)
);
}
add_action('init', 'oma_sisaltotyyppi');
Koodi ei ole monimutkainen, mutta parametrit määrittävät käyttäytymisen.
Keskeiset parametrit
public
Tämä määrittää näkyvyyden.
Kun
public => true,
sisältö:
-
Näkyy frontendissä
-
Saa URL:t
-
Näkyy adminissa
Kun false, sisältö voi olla vain järjestelmän sisäinen rakenne.
has_archive
Mahdollistaa arkistosivun.
Esimerkiksi:
Ilman tätä CPT toimii yksittäisinä sivuina, mutta listauslogiikka puuttuu.
rewrite
Määrittää URL-rakenteen.
Slug ei ole pelkkä kosmeettinen asia. Se vaikuttaa SEO:hon, navigaatioon ja käyttäjäkokemukseen.
supports
Määrittää editoriominaisuudet.
Tyypillisiä:
-
title
-
editor
-
thumbnail
-
excerpt
-
custom-fields
Minimalistinen sisältötyyppi voi olla yllättävän tehokas.
Labels: admin-käyttöliittymän kieli
Labels määrittävät, miten CPT näkyy hallintapaneelissa.
Ilman niitä WordPress käyttää geneerisiä nimiä. Käyttäjäkokemus kärsii.
Hyvin määritellyt labelsit tekevät järjestelmästä intuitiivisen.
Taksonomiat: sisällön luokittelu
CPT ilman taksonomioita on usein vasta puolikas ratkaisu.
Taksonomia voi olla:
-
Hierarkinen (kuten kategoriat)
-
Ei-hierarkinen (kuten tagit)
Esimerkki:
register_taxonomy(
'projektityypit',
'referenssit',
array(
'label' => 'Projektityypit',
'rewrite' => array('slug' => 'projektityypit'),
'hierarchical' => true
)
);
Taksonomiat tuovat:
-
Suodattamisen
-
Arkistot
-
Rakenteellisen selkeyden
Template-logiikka
WordPress käyttää template hierarchy -järjestelmää.
CPT:lle voidaan luoda omat näkymät:
-
single-referenssit.php
-
archive-referenssit.php
Tämä mahdollistaa täysin erillisen visuaalisen logiikan.
CPT ei ole vain datarakenne. Se on myös renderöintirakenne.
Custom Fields ja metatieto
Todellinen joustavuus syntyy lisäkentistä.
Referenssissä voidaan tallentaa:
-
Asiakas
-
Projektin kesto
-
Teknologiat
-
Budjetti
Advanced Custom Fields (ACF) tekee tästä lähes kivutonta.
Rakenteellinen data → parempi hallinta → parempi suorituskyky.
CPT ja suorituskyky
Hyvin rakennettu CPT voi jopa parantaa suorituskykyä.
Miksi?
Koska:
-
Data on loogisesti eroteltu
-
Kyselyt ovat selkeämpiä
-
Sisältölogiikka on ennustettavampi
Huonosti rakennettu sivurakenne johtaa usein raskaisiin WP_Query-virityksiin.
Yleiset virheet
CPT teeman sisällä ilman lisäosaa
Kun CPT sidotaan teemaan, teeman vaihto voi rikkoa sisällön logiikan.
Sisältörakenteet kuuluvat usein lisäosaan, eivät teemaan.
Liiallinen meta-datan käyttö
wp_postmeta ei ole ääretön leikkikenttä. Rakenteellinen data voi joskus ansaita oman taulun.
URL-rakenteen unohtaminen
Slugit, rewrite-säännöt ja arkistot vaikuttavat enemmän kuin miltä ensi silmäyksellä näyttää.
Milloin CPT:tä ei kannata käyttää?
Jos sisältö:
-
Ei toistu
-
Ei tarvitse listauksia
-
On täysin uniikkia
Sivu voi olla täysin riittävä ratkaisu.
CPT ei ole pakollinen hienous. Se on rakenteellinen työkalu.
Lopuksi
Custom Post Type ei ole WordPress-temppu. Se on sisällön arkkitehtuuria.
Kun sisältö mallinnetaan oikein, koko järjestelmä muuttuu:
-
Selkeämmäksi
-
Helpommaksi hallita
-
Helpommaksi laajentaa
-
Usein myös nopeammaksi
WordPress ei ole pelkkä CMS. Se on sisältötietokanta, joka odottaa, että sitä käytetään kunnolla.
