Kuukin Web Developer Juuso Jaakkola kertoo avoimen lähdekoodin WordPress- ja Joomla!-sisällönhallintajärjestelmien kokemuksistaan.

Aloitin keväällä 2019 harjoittelun verkkokehittäjänä Kuuki Marketing Labissa. Minulla ei ollut juuri yhtään aiempaa kokemusta sisällönhallintajärjestelmistä. Aiempi osaamiseni web-kehityksestä tulee hajanaisen HTML:n, CSS:n ja JavaScriptin kautta.

Tieto ja kokemus

Ensimmäinen tehtäväni Kuukissa oli asentaa puhdas WordPress-asennus. WordPress on maailman suosituimpia avoimen lähdekoodin julkaisujärjestelmiä. Yksi WordPressin parhaista puolista on, että sen aloittaminen on ällistyttävän helppoa. Palvelimelle ei tarvitse viedä kuin yksi tiedosto, ja sen jälkeen pääsee aloittamaan sivuston kehityksen. Omalla kohdallani tämä helppo ensimmäinen askel osoittautui yllättävän haastavaksi. Hosting-palvelun käyttökin kun oli uusi kokemus. Lopulta löysin oikean paikan, jonne viedä WordPress-asennuspaketti. Tiedoston purkamisen jälkeen alkoi uusi hämmennys. Miten WordPress tallentaa tietoa? Tiesin, että jonkin sortin tietokanta tarvitaan, mutta tämän tarkemmin ei ollut tietoa, miten se tapahtuu. Taisin käyttää hämmentyneenä useammankin vartin, mutta lopulta tietokanta ja WP saatiin onnistuneesti asennettua. Ensimmäiset kerrat ovat ikimuistoisia ja jälkeenpäin ajateltuna hyvinkin hauskoja.

WordPressin kaksi tärkeintä lisäosaa

Ymmärrykseni verkkokehityksestä kokonaisuutena oli erittäin hajanainen. Tiesin, että data on jossain ja verkkosivuille luodaan rakenne, ominaisuudet ja jotenkin kommunikoidaan datan kanssa. Olin teoriassa ymmärtänyt palvelinten välisen kommunikaation pyyntöjen ja vastausten osalta, mutta käsitys kokonaisuudesta puuttui.

Ylipäätään erilaisten webkehitys-kokoonpanojen erilaiset ominaisuudet olivat täysin tuntematon konsepti.

Seuraavaksi ongelmana oli alkaa hahmottamaan itselleni, miten WordPress itseasiassa toimii. Tähän erinomaisia vastauksia tarjoaa wpbeginner-sivusto ja tietenkin WordPressin oma dokumentaatio. Verkossa on lukuisia muitakin resursseja, joista löytyy selkeitä vastauksia mihin tahansa ohjelmaan. Suurin haaste on keksiä englanniksi lause, joka kuvaa ongelmaa mahdollisimman selkeästi. Tämä siis siksi, että googlettaminen on web-kehittäjän tärkeimpiä taitoja.

WordPress tarjoaa erittäin laajan valikoiman erilaisia lisäosia, jotka ratkaisevat käsillä olevan ongelman kokonaan. Ehkä kaikkein tärkein lisäosa WordPressille on nimeltään Advanced Custom Fields (ACF). Tämän avulla on erittäin helppo luoda oikeanlaisia kenttiä, joihin syöttää sisältöä.

Toinen tärkeä asia, joka on hyvä sisäistää, on nimeltään Custom Post Types (CPT). Tämän toimintatavan avulla melkein mitä tahansa sisältöä on helppo hallinnoida. Yhdessä ACF ja CPT ovat erittäin tehokas kombinaatio, joiden avulla voidaan luoda verkkosivuille melkein mitä tahansa.

Näiden kahden rakennuspalikan lisäksi lapsiteeman luominen jonkin kevyen pääteeman päälle antaa erittäin nopean väylän uuden WP-sivuston luomiseen. Käytännössä tämä tarkoittaa sitä, että pohjalla oleva isäntäteema antaa valmiin perusrakenteen, jonka päälle lapsiteema tekee tarvittavat lisäykset, joilla päästään haluttuun lopputulokseen ilman, että tarvitsee aloittaa täysin tyhjästä.

Joomla! vaatii enemmän perehtymistä

Joomla!-julkaisujärjestelmän kanssa tehtävän kehityksen suurimmat haasteet ilmenivät huomattavasti suuremmasta abstrahoinnin tarpeesta. Toimintatapoja pitää siis harjoitella enemmän. Toisin sanoen Joomla!:n käyttöliittymä ei tarjoa kovin hyvää käyttäjäkokemusta. Asiat eivät toimi niin kuin niiden ensisijaisesti olettaisi toimivan. Joomla!:lle tärkeä lisäosa, joka mahdollistaa omien muunneltavien sivujen ja kategorioiden luomisen on K2. Valitettavasti K2 ei ole läheskään samalla tasolla kuten ACF. Tähän suurena ongelmana on luonnollisesti kehittäjäyhteisön koko, joka on huomattavasti pienempi kuin WordPressillä.

En koe Joomla!:n sisällönhallinnan kokonaisuutta läheskään yhtä toimivaksi kuin esimerkiksi WordPressin. Yksi hyvä esimerkki ovat valikot. Joomla!:ssa valikoilla on suuri merkitys sivuilla navigoimiseen eli sivuston rakenteeseen. Esimerkiksi K2-lisäosalla artikkelit ensin liitetään omiin kategorioihin ja sen jälkeen nämä vielä erikseen lisätään valikkoon. Tämä toimintatapa ei ole mielestäni kovinkaan intuitiivinen. Iso osa ongelmistani varmasti hälvenee ja katoaa, kun opin lisää tämän järjestelmän toimintaperiaatteesta.

Webkehityksen yksi mielekkäimpiä puolia on se, että yhtä oikeaa ratkaisua ei ole olemassa

Toimivia keinoja ei voi vain keksiä ja luoda omalla luovuudella vaan ne pitää lukea Joomla!:n dokumentaatiosta, lukea Joomla!-foorumilta tai sivustolta, jossa kehittäjät jakavat huolensa ja toivovat, että joku jakaisi ongelmaan ratkaisunsa. Tietenkin tämä sama toimintamalli pätee myös WordPressillä – sekä muilla verkkosivustojen kehittämiseen tarkoitetuilla avoimenlähdekoodin alustoilla. Toistaiseksi koen Joomla!:n kanssa esiin tulevat ongelmat enemmän energiaa kuluttaviksi, ja tästä syystä sen parissa ongelmien ratkaisu on rasittavampaa. Toivottavasti tämä kirjoitus aktivoi Joomla!:n puolestapuhujia, jotka täyttävät sähköpostini kertomalla Joomla!:n parhaat toimintatavat.

Ymmärrän sen, että monet kokevat turvallisuutta siitä, että asioiden tekemiseen on valmiit ja strukturoidut toimintamallit, joilla asiat varmasti toimivat. Omien ratkaisujen luomisen ohella tulee myös riskinsä. Otinko kaikki mahdolliset ongelmat huomioon? Loppukäyttäjä ei välttämättä ajattele käyttöliittymää samalla tavalla kuin minä, ja hän saattaa syöttää tietoa ”väärin” ja rikkoa sivuston.

Aluksi pidin WordPress-julkaisujärjestelmää vain blogien luontiin tarkoitettuna työkaluna, jolla ei voi tehdä vakavasti otettavaa webkehitystä. On ihailtavaa huomata miten laajoihin ja monimutkaisiin kokonaisuuksiin WordPress taipuu. Laajan kehittäjäyhteisön ansiosta hyvin moniin ongelmiin löytyy ratkaisu lisäosan avulla. WordPressillä tehtävän kehityksen suurimpana riskinä näen sen helppouden. Riski kohdistuu kehittäjään ja siihen, että helposti turvautuu oletukseen, että tähänkin ongelmaan on jo olemassa lisäosa.

Tämä johtaa helposti toimintatapaan, joka ei haasta mieltä keksimään ratkaisuja itse ja se tarkoittaa, että aivojen ei tarvitse muodostaa uusia yhteyksiä, joka ei ole kehittävää kehitystä. Ihminen ei luonnostaan halua kokea jatkuvia vastoinkäymisiä. Webkehityksessä mantra ”Fail fast, fail often” on erittäin relevantti ja toimiva.

WordPress ei välttämättä pääse eroon vanhasta maineesta, vaikka taipuukin nykyään moneen

Uskon, että WordPress ei kovinkaan helposti pääse irti maineestaan pelkkänä blogien ylläpitoon ja luontiin tarkoitettuna sisällönhallinnan alustana. Alusta kehittyy ja monipuolistuu koko ajan. Loistavana esimerkkinä tästä on se, että WordPress loi REST-rajapinnan sisällölleen. Lyhyesti sanottuna tämä antaa mahdollisuuden käyttää WordPressiä päättömänä tiedonhallintajärjestelmänä, (headless CMS) mikä tarkoittaa, että WordPress hoitaa back-endin (palvelin puolen asiat/ajatukset) ja front-endin (käyttäjän kokema käyttöliittymä/ teot) voi kehittäjä hoitaa millä tahansa haluamallaan teknologialla.

Seuraavassa blogikirjoituksessani käyn läpi, miten WordPress taipui päättömäksi sisällönhallintajärjestelmäksi. Pohdin prosessin aikana ilmenneitä haasteita, oivalluksia ja ylipäätään, että onko ominaisuudella todellista lisäarvoa webkehitykseen.