
💡 Kuinka luoda mukautettu sisältötyyppi WordPressissä: koodi ja lisäosa
Vakiosivut ja -artikkelit kattavat suurimman osan tyypillisen verkkosivuston tarpeista. Mutta kun mukaan tulee tuotekatalogi, kiinteistötietokanta tai projektiportfolio, nämä kaksi sisältötyyppiä eivät enää riitä. Tuotteiden sekoittaminen blogiluonnosten joukkoon on hankalaa, ja sivujen ylikuormittaminen mukautetuilla kentillä on suora tie hallintapaneelin kaaokseen.
WordPress ratkaisee tämän ongelman mukautetuilla sisältötyypeillä, Custom Post Types (CPT). Luot sivupalkin valikkoon oman osion, jolla on omat kenttänsä, kategoriansa ja näyttöpohjansa. Tuotteet pysyvät erillään artikkeleista. Tapahtumat eivät sekoitu sivuihin. Data pysyy siellä, minne se kuuluu.
Alla on kaksi testattua tapaa: koodilla käyttäen register_post_type()-funktiota (joustava, ei ylimääräisiä lisäosia) ja ilmaisella lisäosalla CPT UI (ei vaadi PHP:tä). Molemmat toimivat WordPress 6.7+ -versiossa, ja ne on testattu tuotantosivustoilla.
💡 Pikakatsaus:
- Rekisteröi uusi sisältötyyppi ydinfunktiolla
register_post_type(), ilman lisäosia, täydellä parametrien hallinnalla. - Kooditon vaihtoehto: Custom Post Type UI -lisäosa tarjoaa visuaalisen käyttöliittymän, madaltaa aloituskynnystä ja poistaa syntaksivirheet.
- Rekisteröinnin jälkeen tyyppi ilmestyy sivupalkin valikkoon. Viimeistely: taksonomiat, kentät ja permalinkkien nollaus.
Mitä mukautettu sisältötyyppi tarkoittaa
Kaikki WordPressin sisältö on tietue, jossa on post_type-kenttä wp_posts-taulussa. Blogiartikkeleille se on post. Sivuille se on page. Liitetiedostoille se on attachment. Mukautettu tyyppi lisää uuden arvon: product tuotteille, event tapahtumille, portfolio projekteille. Mitä tahansa sivustosi tarvitseekaan.
Jokainen CPT saa oman valikkokohtansa hallintapaneelissa, URL-rakenteen (/events/webinar-2026/), omat taksonomiansa ja tuen tarvitsemillesi editorilohkoille: pienoiskuvat, tiivistelmät, editori, kommentit. Kaikki tämä otetaan käyttöön supports-taulukon valintaruuduilla, ilman mitään taikuutta.
Suurin hyöty on järjestys. Tuotteet eivät ajelehdi blogisyötteessä. Tapahtumia ei tarvitse suodattaa pois yleisestä kasasta. Hallinnointi nopeutuu, ja sivuston haku toimii tarkemmin.
Tapa 1: rekisteröinti koodilla, register_post_type()
Perusmenetelmä, joka on toiminut WordPress 3.0:sta lähtien. Ei vaadi kolmannen osapuolen lisäosia. Koodi lisätään lapsiteeman functions.php-tiedostoon tai, turvallisemmin, Code Snippets -lisäosan kautta: koodivirhe ei kaada sivustoa, vaan poistaa käytöstä vain kyseisen pätkän.
Vaihe 1: funktio init-koukkuun
Funktio kytketään init-koukkuun. Aiemmin se ei toimi, koska ydin ei ole vielä valmis vastaanottamaan rekisteröintejä. Myöhemmin tyyppiä ei poimita ennen seuraavaa pyyntöä. Tässä on minimaalinen toimiva pohja:
1 /** 2 * Registers a custom post type 'Books'. 3 * Place in functions.php of the child theme or via Code Snippets. 4 */ 5 function myprefix_register_book_post_type() { 6 register_post_type( 'book', array( 7 'labels' => array( 8 'name' => 'Books', 9 'singular_name' => 'Book', 10 'add_new_item' => 'Add New Book', 11 'edit_item' => 'Edit Book', 12 'view_item' => 'View Book', 13 'search_items' => 'Search Books', 14 'not_found' => 'No books found', 15 ), 16 'public' => true, 17 'has_archive' => true, 18 'rewrite' => array( 'slug' => 'books' ), 19 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ), 20 'show_in_rest' => true, 21 'menu_icon' => 'dashicons-book-alt', 22 ) ); 23 } 24 add_action( 'init', 'myprefix_register_book_post_type' );
Koodin lisäämisen jälkeen hallintapaneeliin ilmestyy "Kirjat"-osio. Tietueiden URL-osoitteiksi tulee site.ru/books/book-name/. Se toimii heti.
Vaihe 2: keskeiset parametrit
Funktio ottaa kaksi argumenttia: tyyppiavaimen merkkijonona (enintään 20 merkkiä, latinalaisia kirjaimia ja yhdysviivoja) sekä asetustaulukon. Tässä ovat parametrit, jotka kannattaa määrittää harkiten:
Parametri | Mitä se tekee | Suositus |
|---|---|---|
| Näkyvyys hallinnassa ja julkisella puolella |
|
| Arkistosivu kaikille tämän tyypin tietueille |
|
| URL-rakenne (polkutunnus) | Aseta eksplisiittisesti, ilman erikoismerkkejä |
| Editorilohkot | Vähintään: |
| Saatavuus lohkoeditorissa |
|
| Kuvake sivupalkin valikossa | Valitse Dashicons-kuvakkeista |
Vaihe 3: taksonomiat
Artikkelikategoriat ja -avainsanat eivät oletuksena liity CPT:hesi. Luo omasi:
1 function myprefix_register_book_taxonomies() { 2 register_taxonomy( 'genre', 'book', array( 3 'label' => 'Genres', 4 'rewrite' => array( 'slug' => 'genre' ), 5 'hierarchical' => true, 6 'show_in_rest' => true, 7 ) ); 8 9 register_taxonomy( 'book_tag', 'book', array( 10 'label' => 'Book Tags', 11 'rewrite' => array( 'slug' => 'book-tag' ), 12 'hierarchical' => false, 13 'show_in_rest' => true, 14 ) ); 15 } 16 add_action( 'init', 'myprefix_register_book_taxonomies' );
Taksonomiat rekisteröidään register_taxonomy()-funktiolla, jossa on eksplisiittinen sidonta post_type-parametriin toisena argumenttina. hierarchical => true antaa puurakenteen kuten kategorioissa. false antaa litteän listan kuten avainsanoissa.
Vaihe 4: permalinkkien nollaus
Rekisteröinnin jälkeen mene kohtaan Asetukset → Permalinkit ja napsauta "Tallenna muutokset", vaikka et olisi muuttanut mitään. WordPress rakentaa reitityssäännöt uudelleen. Ilman tätä vaihetta URL-osoitteet, kuten /books/, palauttavat 404-virheen.
Milloin pelkkä koodi riittää
Tämä tapa toimii hyvin yhdelle tai kahdelle mukautetulle tyypille, kun rakenne ei muutu usein. Plussaa: ei ylimääräisiä lisäosia ja täysi hallinta jokaiseen parametriin. Miinusta: monimutkaisissa usean CPT:n välisissä suhteissa ja julkisissa lähetyslomakkeissa koodi kasvaa nopeasti.
Tapa 2: ilman koodia, Custom Post Type UI -lisäosa
Jos et halua koskea functions.php-tiedostoon, asenna Custom Post Type UI. Ilmainen lisäosa WebDevStudiosilta: miljoona aktiivista asennusta, arvosana 4,6 WordPress.orgissa. Päivitetty toukokuussa 2026, testattu WP 7.0 -versioon asti.

Kuinka luot CPT:n käyttöliittymän kautta
- Asenna lisäosa: Lisäosat → Lisää uusi → "Custom Post Type UI" → Asenna → Ota käyttöön.
- Mene kohtaan CPT UI → Lisää/muokkaa sisältötyyppejä.
- Täytä kentät: Post Type Slug (latinalaisia kirjaimia, esimerkiksi
event), Plural Label ("Tapahtumat"), Singular Label ("Tapahtuma"). - Settings-lohkossa valitse: Public (True), Has Archive (True), Show in REST API (True).
- Supports-lohkossa valitse vähintään: Title, Editor, Thumbnail, Excerpt.
- Napsauta Add Post Type.
Taksonomiat luodaan samassa paikassa, Add/Edit Taxonomies -välilehdellä. Määritä sidonta sisältötyyppiisi, ja kategoriat ilmestyvät sivupalkin valikkoon.
Vahvuudet
Nopea rekisteröinti ilman syntaksivirheiden riskiä: lisäosa kokoaa oikean $args-taulukon itse. Tools-välilehti mahdollistaa tyyppien siirtämisen sivustojen välillä koodin viennin ja tuonnin avulla. CPT UI Pro lisää lohkoja julkisen puolen näyttöön ja vedä ja pudota -sarakkeita hallintapaneeliin, mutta ilmainen versio kattaa rekisteröintitehtävän täysin.
Huomaa, että lisäosa vain rekisteröi tyypit ja taksonomiat. Julkisen puolen näyttöön tarvitset joko teemapohjia, CPT UI Pron tai yhdistelmän Advanced Custom Fields- tai Elementor-lisäosien kanssa.
Vertailu: koodi vastaan lisäosa
Kriteeri | Koodi ( | Lisäosa (CPT UI) |
|---|---|---|
Aloituskynnys | Vaatii PHP-taulukoiden ymmärrystä | Käyttöliittymä muistuttaa WP:n vakioasetuksia |
CPT:iden määrä | Rajoittamaton | Rajoittamaton |
Siirto sivustojen välillä | Kopioi koodi | Vie/tuo Tools-välilehden kautta |
Ylimääräinen koodi sivustolla | Ei mitään | Yksi lisäosa lisää |
Riippuvuus lisäosasta | Ei | Kyllä, CPT UI:n on oltava aktiivinen |
Dokumentaatio |
Käytännössä käytetään usein yhdistelmää: rekisteröi tyypit CPT UI:lla nopeuden vuoksi ja lisää kentät Advanced Custom Fieldsillä. Näin saat visuaalisen määrityskäyttöliittymän ilman yhtäkään PHP-riviä.
⁉️🤔 Usein kysytyt kysymykset
Täytyykö permalinkit nollata CPT:n luomisen jälkeen?
Kyllä, aina. Mene kohtaan Asetukset → Permalinkit ja napsauta "Tallenna". WordPress rakentaa reitityssäännöt uudelleen. Ilman tätä uudet URL-osoitteet, kuten
/books/, palauttavat 404-virheen.
Miten CPT UI eroaa ACF:stä tyyppien rekisteröinnissä?
CPT UI vain rekisteröi sisältötyypit ja taksonomiat. ACF, versiosta 6.1 alkaen, voi myös rekisteröidä CPT:itä, mutta sen päävahvuus on mukautetut kentät. CPT UI + ACF -yhdistelmä antaa käyttöliittymän tyypeille ja joustavat kentät. Et ole lukittunut yhteen toimittajaan.
Voinko nimetä olemassa olevan sisältötyypin uudelleen?
Suoraa mekanismia ei ole. Kun muutat
post_type-arvoa tietokannassa, vanhat tietueet katoavat hallintapaneelista. Oikea lähestymistapa: luo uusi tyyppi halutulla nimellä, siirrä tietueet SQL-kyselylläUPDATE wp_posts SET post_type = 'new_type' WHERE post_type = 'old_type'ja poista vasta sitten vanha rekisteröinti. Täysi tietokantavarmuuskopio ennen siirtoa on pakollinen.
Katoavatko mukautetut tyypit teemaa vaihdettaessa?
Jos tyypit on rekisteröity teeman
functions.php-tiedostossa, kyllä, teemaa vaihdettaessa ne katoavat hallintapaneelista. Tietueet säilyvät tietokannassa, mutta ne eivät näy. Rekisteröi CPT:t erillisessä lisäosassa tai Code Snippetsin kautta, niin tyypit säilyvät minkä tahansa teemanvaihdon yli.
Kuinka näytän CPT:n etusivulla yleisessä syötteessä?
Lisää suodatin Code Snippetsissä:
add_filter( 'pre_get_posts', function( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'post_type', array( 'post', 'book' ) ); } } );. Korvaa taulukossapost_typeomallasi, ja tietueet ilmestyvät syötteeseen tavallisten artikkeleiden rinnalle.
Kumpi tapa valita: loppuyhteenveto
Molemmat tavat johtavat samaan lopputulokseen: uusi osio ilmestyy sivupalkin valikkoon, valmiina täytettäväksi sisällöllä. Ero on vain työkalussa.
Jos työskentelet sivuston parissa käytännönläheisesti etkä pelkää functions.php-tiedostoa, käytä koodia. Yksi register_post_type()-funktio, ei ylimääräisiä lisäosia. Sopii laskeutumissivuille, pienille katalogeille ja projekteille, joissa on kehittäjätuki.
Jos luovutat sivuston asiakkaalle tai rakennat sisältöprojektia, jossa on kymmenkunta tyyppiä, asenna CPT UI. Visuaalinen käyttöliittymä madaltaa aloituskynnystä, ja asetusten vienti säästää tunteja alustojen välillä siirrettäessä.
Joka tapauksessa rekisteröinnin jälkeen määritä näyttö: single- ja archive-pohjat teemassa tai visuaalinen asettelu CPT UI Prolla / Elementor Prolla. Ilman tätä vaihetta sisältö jää vain hallintapaneeliin.



