Olen työskennellyt pienen projektin parissa, enemmän web-sovelluksen kuin sivuston parissa, joka vaatii sekä räätälöidyn teeman että tiiviisti kytketyn, mutta hyvin spesifisen toiminnallisuuden kehittämistä.
Tämä on hyvin suppeasti fokusoitu projekti (josta tulen todennäköisesti puhumaan jossain vaiheessa tulevaisuudessa), mutta sen parissa työskennellessäni se pakotti minut palaamaan hieman takaisin WordPress-kehityksen teemakehitykseen.
Ei, en tee mitään suunnittelua – onneksi – mutta minun on työstettävä teeman mukautuksia toiminnallisesta näkökulmasta. Tätä tehdessäni se on kuitenkin saanut minut tarkastelemaan uudelleen vaadittuja functions.phpja joitain näkökohtia, joita minulla ei ole koskaan ennen ollut.
Lisäksi se on saanut minut tarkastelemaan syvemmin niiden käyttöä mu-pluginsja kysymään, milloin ne ovat tarpeellisia ja miksi en ole käyttänyt niitä enemmän aiemmin (tai jopa milloin niitä todella tarvittaisiin).
Joten aion vahata sitä hieman runollisesti.
TL;DR
Kun tein teemakehitystä, functions.phpkäytettiin kahteen asiaan (joka on sinänsä ongelmallinen), mutta silti:
- ottaa käyttöön tai poistaa käytöstä teemojen ominaisuuksia,
- Teemakohtaisen toiminnallisuuden määrittelemiseksi.
Teemankehittäjän käsikirjassa lukee:
Tiedostossa
functions.phpvoit lisätä ainutlaatuisia ominaisuuksia WordPress-teemaasi. Sitä voidaan käyttää yhdistämään WordPressin ydintoimintoihin, jotta teemastasi tulee modulaarisempi, laajennettavissa oleva ja toimivampi.Teemafunktiot, Teemankehittäjän käsikirja
Ja ymmärrän sen, mutta minun näkökulmastani ja WordPressin kehittyessä mielestäni sen functions.phppitäisi olla omistettu teemakohtaisille toiminnallisille asioille, jotka liittyvät suoraan ytimeen, kuten:
- mukautustoiminto,
- valikkotoiminto,
- käsikirjoituksen ja tyylin rekisteröinti,
- ja niin edelleen.
Mutta jos jonkin koukun aikana on suoritettava jotain ja se on enemmän toimialuekohtaista logiikkaa, se ei kuulu kyseiseen tiedostoon.
Tämä herättää kuitenkin kysymyksen: Missä toimialuekohtaiset toiminnot sijaitsevat?
Anna pakolliset lisäosat
Tiedän, että inchakemistojen kaltaisten asioiden näkeminen on yleistymässä, mutta en ole niistä huolissani, kun puhun teemakehityksestä, varsinkin kun teeman kehittäminen ei ole minun painopisteeni ja kyseinen hakemistorakenne ei ole minun tyylini.
Joka tapauksessa, kun on kyse pitkälle erikoistuneista ratkaisuista (joissa ratkaisu on yhdistelmä esitystä ja tiukasti kohdistettua toiminnallisuutta), alan miettimään mu-plugins.
Ja syy, miksi en ajattele tavallista WordPress-laajennusta, on se, että ne on yleensä suunniteltu toimimaan minkä tahansa teeman kanssa ja lisäämään toimintoja. Ei niin kanssa mu-plugins.
Must-use plugins (alias mu-plugins) ovat laajennuksia, jotka on asennettu erityiseen hakemistoon sisältökansion sisällä ja jotka otetaan automaattisesti käyttöön kaikilla asennuksen sivustoilla.
Must-Use Plugins, WordPress.org
Joten tässä on ajatusprosessini:
- Teemat ovat esittelyä varten
- Pluginit ovat toiminnallisuutta varten.
- Laajennukset on suunniteltu käytettäviksi teemasta riippumatta ja koko sivuston leveydellä.
- Must-Use Plugins ovat laajennuksia, jotka ovat käytössä ja oletuksena käytössä
- Siksi erikoisratkaisun toimialuekohtaisen logiikan tulisi sijaita pakollisessa laajennuksessa.
Toki voidaan todeta, että jotkin teemat saattavat vaatia pakollisia toimintoja, mutta eikö se silti sovi ajatukseen, että toiminnallisuuden pitäisi sijaita pakollisessa laajennuksessa?
Siitä huolimatta lähestymistapa, jota olen noudattanut, on tämä:
- Toiminto, joka yhdistää teemaominaisuudet nimenomaan WordPressin ytimeen, menee
functions.php. - Toimialuelogiikasta, mutta koko ratkaisun toimimista edellyttävä toiminnallisuus sijaitsee
mu-plugin.
Tässä vaiheessa urani en tee paljoa työtä, joka keskittyisi mihinkään muuhun kuin taustajärjestelmään, mutta niissä harvoissa tilaisuuksissa, joissa minun on laajentaa tekemääni työtä, huomaan, että yritän edelleen olla analyyttisenä ja harkitsevana tapaa, jolla rakennan projektia.

