26 Aug

WordPressin child-teema apuna tyylitiedostojen muokkauksessa

Miksi pitäisi käyttää child-teema WordPressissä? Siksi, että pääset todennäköisesti paljon helpommalla päivitysten suhteen.

Hyvin usein eteen tulee tilanne, jossa WPn teeman tyylitiedostoa style.css pitää muuttaa. Avataan teema editorilla ja muutetaan. Sitten save. Kaikki hyvin niin pitkään, kunnes päivitysten (Updates) kohtaan hallinnassa tulee tieto, että teeman uusi päivitys on saatavilla. Itse asiassa hyvin tärkeää, että päivitykset tehdään. Jos hallinta tarjoaa mahdollisuutta tehdä se automaagisesti niin siitä vaan klik&klik. Huono puoli päivityksissä on se, että oletuksena päivitysrutiini ylikirjoittaa myös tyylitiedoston. Asia voidaan ratkaista child-teemalla.

Child-teeman teko on helppoa. Lisäät vain themes-hakemistoon (../wp-content/themes) uuden hakemiston ja sinne tiedoston style.css johon tehdään kaikki muutokset tästä eteenpäin. Tarvittavat ohjeet löydät ylläolevasta blogauksesta. Päivityksessä siis pääteema (parent) päivittyy ja child-teeman tiedostot säilyvät koskemattomina. Tässä css-esimerkissä teemojen parent/child linkittyvät toisiinsa “template” ja “@import” tiedon avulla.

screenshot-style-css-in-child-themeVäsyneen koodarin ruutukaappaus Sublimestä. Koodiesimerkin löydät Elegantin blogauksesta.

Samaan hakemistoon voi laittaa myös teeman juuressa olevia, oleellisia muotoiluun liittyviä tiedostoja kuten footer.php tai sidepbar.php, kun niitä on muokattu. Tämä on vielä hyvin kivuton toimenpide. Itse teen functions.php-tiedoston muutokset pääteemaan.

Child-teeman luominen on helpompaa kuin mitä se saattaa äkkiseltään kuulosta, mutta helpottaa elämään huomattavasti. Vanhakin sivusto kannattaa viedä childtheme-metodin päälle, koska hyödyt ovat kuitenkin suuremmat kuin työ. Lisävoimistelu on tietysti tapauskohtaista. Pahinta, jos päivitykset jäävät tekemättä.

WordPressin omaa dokumentaatiota aiheesta: https://codex.wordpress.org/Child_Themes

Leave a Reply

Your email address will not be published. Required fields are marked *