WordPressin uusi Gutenberg-editori on oiva työkalu, joka vähentää tarvetta page buildereille ja mahdollistaa erilaisten sisältölajien ja perusasettelujen rakentelun suoraan editorista. Kaikkea Gutenberg ei valmiiksi kuitenkaan osaa. On olemassa lisäosia, jotka tuovat Gutenbergiin uusia lohkoja, mutta entä jos tarvittaisiin kustomoitu, omiin tarpeisiin istuva lohko? Lohkojen luominen onnistuu kyllä, mutta ei se ihan yksinkertaista ole. Asiaa on […]
Twenty Twenty -teeman artikkelien otsakkeen muuttaminen
Halusin Twenty Twenty -teemaan pienen muutoksen artikkelien otsaketietoihin. Oletuksena otsakkeessa näytetään artikkelin luontipäivämäärä, mutta Lautapelioppaassa on olennaista myös se, milloin artikkelia on päivitetty. Artikkelin otsaketiedot tulevat twentytwenty_the_post_meta()-funktiosta, joka taas ei tee muuta kuin tulostaa sen, mitä twentytwenty_get_post_meta()-funktio luo. Tämä on sen verran pitkä ja monimutkainen funktio, ettei sitä kannata lähteä kirjoittamaan uudestaan, jos haluaa tehdä […]
Devaajan työkalut: editori
Devaajan perustyökalu on editori. Kaikenlaisilla editoreilla voi kirjoittaa koodia – minäkin tein pitkään TextWranglerilla – mutta hyvä editori helpottaa elämää paljon. Editorin valinnasta ei nykyään ole juuri kysymystä: Visual Studio Code on sen verran ylivertainen vekotin, että muuta ei oikeastaan tarvitse edes harkita. No, eivät sitä kaikki käytä, mutta lähtisin silti siitä, että jos mitään […]
Kulttuuriykkönen 10.12.2019
Lautapelien intohimoisimmat harrastajat haistelevat vastikään pakkauksestaan avattua lautapeliä kuin viiniharrastajat harvinaisuuksiaan ja paneutuneimmat erottavat valmistajat toisistaan tuoksun perusteella. Chris Haney ja Scott Abbott kehittivät Trivial Pursuitin Montrealissa 40 vuotta sitten. Klassikkotietopeli pitää pintansa edelleen, ja lautapelien suosio kasvaa. Lautapelihulluille pelit tuovat sisältöä elämään ja antavat tilaisuuden päteä. Ne myös parantavat strategista ajattelua ja opettavat sietämään […]
Omien SVG-ikonien lisääminen Twenty Twentyyn
WordPressin uusi oletusteema Twenty Twenty on hieno, ihastuin heti. Värkkään Lautapelioppaalle uutta teemaa ensi vuoden 20-vuotisjuhlien kunniaksi, joten tuntui jokseenkin luontevalta vaihtaa vanha Twenty Fourteen -pohjainen teema Twenty Twentyyn. Värkätessä tuli vastaan pieni pulma: halusin lisätä teemaan omia SVG-ikoneita, koska olemassaolevasta valikoimista puuttui jokunen tarpeellinen ikoni. Vaan kuinkas se tehdään elegantisti ja mahdollisimman vähällä olemassaolevan […]
Redis-välimuisti Node.js:ssä
Kaipasin Node.js-sovellukseen välimuistia. Minulla on lautapelikirjanpitoon Gamestats-sovellus, jossa on Mongo-tietokanta, Node.js-backend ja React-frontti. Dataa on kertynyt aika lailla, kun kirjanpidossa on kaikki pelatut lautapelit parinkymmenen vuoden ajalta, joten osa sivunlatauksista on toivottoman hitaita. Ongelmia aiheuttaa sekin, että kaikkea datan yhdistelyä ei voi tehdä tietokannassa, vaan monissa tapauksissa on ensin imaistava Mongosta kaikki pelit ja pelisessiot […]
Asynkroniset toiminnot WordPressissä
Toisinaan WordPressin kanssa tulee tarvetta tehdä asioita asynkronisesti. Jos joku toimenpide vaatii aikaa ja aiheuttaa odottelua, mutta sen lopputulos ei oikeastaan ole kriittinen juuri tällä hetkellä, käsillä on asia, joka kannattaa ehkä tehdä asynkronisesti. WordPress mahdollistaa asynkroniset toiminnot Ajax-toiminnallisuuden kautta. Ajax on oikeastaan tarkoitettu javascript-käyttöön, eli tarkoitus on, että javascriptin puolelta lähetellään ajax-pyyntöjä ja vastauksena […]
Devaajan työkalut: terminaali
Komentorivi on hieno työympäristö, jossa tulee tehtyä kaikenlaista, joten senkin osalta käyttökokemukseen kannattaa panostaa. Oma komentorivikokemukseni on alkanut DOS-aikoina ja niistä ajoista on onneksi päästy jo pitkälle. Mac OS:n mukana tulee Terminal tai Pääte, joka hoitaa asiansa, mutta aika monella työkseen terminaalia käyttävällä taitaa olla käytössä iTerm2, jonka valtavasta ominaisuuskasasta olen tainnut itsekin raapaista vain […]
Tiedon lukeminen luotettavasti ja fiksusti etäpalvelimelta WordPressissä
Jos WordPressissä haluaa ladata jotain dataa saitin ulkopuolelta, sehän käy kätevästi wp_remote_get()-funktiolla. Tällaisten kutsujen yhteydessä on aina syytä huolehtia välimuistittamisesta. Ilman välimuistia jokaisella sivunlatauksella kysellään dataa etäpalvelimelta ja siinä törmätään monenlaisiin ongelmiin nopeasti. Jatkuva kyseleminen tuottaa turhaa tietoliikennettä ja rasittaa etäpalvelinta turhaan. Jos tieto ei ole niin nopeasti muuttuvaa, että sitä on välttämätöntä seurata reaaliajassa, […]
Testaaminen WordPress-kehityksessä
Testaaminen on ohjelmistokehityksen perusjuttuja ja tapa varmistaa, että koodi jota tehdään, on toimivaa. Testaamista on monenlaista, tässä keskityn yksikkötestaamiseen (unit testing) ja integraatiotestaamiseen (integration testing). Näissä erona on, että yksikkötestauksessa testataan ohjelmiston yksittäisiä komponentteja ja integraatiotestauksessa isompia kokonaisuuksia. WordPress-kontekstissa näitä kahta on kuitenkin hankalaa ja tarpeetontakin erottaa tarkasti toisistaan. Kolmas olennainen testaamisen muoto on regressiotestaus […]