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).
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.
