Taksonomioista potkua tiedonhallintaan

käyttäjältä Mikko Saari - 19.6.2010

Jos WordPressillä haluaa tehdä jotain vähän monimutkaisempaa sisällönhallintaa, tulee helposti vastaan tilanteita, joissa tarvitaan hieman jämerämpiä työkaluja rakenteisen informaation hallintaan. Avainsanat ovat näppärä apuväline tiedon luokitteluun, mutta on tilanteita, joissa ne eivät riitä. Silloin apuun tulevat omat taksonomiat.

Omat taksonomiat ovat itse luotuja luokitusjärjestelmiä, jotka toimivat joko vapaamuotoisesti avainsanojen tapaan tai hierarkisesti aiheiden (kategorioiden) tapaan. Niiden luominen ja käyttäminen on hyvin yksinkertaista. Omat taksonomiat ovat olleet WordPressissä versiosta 2.8 alkaen.

Käytännön esimerkki

Teen korttipelejä käsittelevää sivustoa WordPressillä (sivut avataan lähiviikkoina) ja törmäsin tässä projektissa tilanteeseen, jossa taksonomioista on apua. Huomasin nimittäin tallentavani avainsanoihin kolmea eri tietoa: korttipelin luokitusta, pelaajamäärää ja käytettyä pakkaa. Toimii se noinkin, mutta elegantimpi ratkaisu on hajottaa eri tiedot eri luokituksiin.

Niinpä jätin pelin luokituksen avainsanoihin ja tein uudet taksonomiat pelaajamäärille ja pakoille. Koska näiden tietojen ei tarvitse olla hierarkisia — kaikki vaihtoehdot ovat samanarvoisia — tein ne yksinkertaisimmalla mahdollisella tavalla.

Katso myös Taksonomiat käytännössä, case Kirjavinkit.

Näin teet oman taksonomian

Taksonomiat rekisteröidään näin:

add_action('init', 'create_my_taxonomies', 0 );

function create_my_taxonomies() {
register_taxonomy('pakat', 'post', array('hierarchical' => false, 'label' => 'Pakat', 'query_var' => true, 'rewrite' => true));
register_taxonomy('pelaajia', 'post', array('hierarchical' => false, 'label' => 'Pelaajamäärät', 'query_var' => true, 'rewrite' => true));
}

Tämä koodi lisätään teeman tiedostoihin (funktiot kannattaa koota yhteen paikkaan ja sitä varten useimmissa teemoissa onkin functions.php-tiedosto). Tämä yksinkertainen koodi lisää kaksi taksonomiaa.

Ensimmäinen parametri määrittelee taksonomian nimen, seuraava kertoo että se liittyy artikkeleihin (vaihtoehtona olisi ‘page’).

Jos ‘hierarchical’ on ‘true’, tuloksena on hierarkinen luokitus, jossa voi olla ylä- ja alaluokkia. ‘Label’ on käyttöliittymässä näkyvä nätti nimi, ‘query_var’ mahdollistaa artikkelien hakemisen taksonomian avulla ja ‘rewrite’ aktivoi nätit URLit. Molempiin kannattaa lätkäistä ‘true’. URLit alkavat toimia, kunhan käyt Osoiterakenne-asetussivulla (pelkkä käyminen riittää, ei tarvitse edes tallentaa).

Tämän jälkeen taksonomiat ilmestyvät Artikkelit-valikkoon ja näkyvät artikkelien muokkaussivulla. Ne toimivat kuten avainsanat ja aiheet, joten niiden käyttäminen on helppoa.

Jos haluat näyttää uudet taksonomiasi käyttäjille, saat listattua ne näin:

<?php echo get_the_term_list( $post->ID, 'pakat', 'Pakka: ', ', ', '' ); ?>

Tämä koodinpätkä näyttää merkinnän termit taksonomiasta ‘pakat’, laittaa eteen otsikon ‘Pakka: ‘ ja erottelee termit pilkuilla. Tämän pitää olla jossain, missä $post-muuttuja on määritelty, esimerkiksi yksittäisen merkinnän sivulla tai etusivulla Loopin sisällä.

Lisää aiheesta

Opin asian Justin Tadlockin jutusta Custom Taxonomies in WordPress 2.8. WordPress 3.0 lisäsi taksonomioihin uusia ominaisuuksia, joista kertoo lisää Tadlockin artikkeli A refresher on custom taxonomies. Register_taxonomy-funktion ohjeet Codexissa listaavat kaikki eri parametrit — tässä on esitelty vain ehdoton minimi, jolla taksonomiat saa toimimaan ja etenkin WordPress 3.0 -käyttäjien kannattaa vilkaista Codexista uusia mahdollisuuksia. Taksonomioita voi hyödyntää myös wp_tag_cloud-funktiolla, se osaa käyttää myös omia taksonomioita.

Jätä kommentti

Previous post:

Next post:

Uusimmat jutut