Barnetema: endre uten å ødelegge
Arv fra malertemaet — og hvorfor oppdateringer aldri skal skremme deg.
Første gang du vil endre et tema, er fristelsen å redigere det der det ligger. Så kommer neste oppdatering, og alt du gjorde er borte. Barntemaet er den profesjonelle løsningen: et eget temalag som arver fra originalen — og som oppdateringer aldri rører.
Hvorfor oppdateringer overskriver
En temaoppdatering er ikke en pen kodefletting — WordPress erstatter hele temamappen med den nye versjonen. Har du skrevet CSS nederst i style.css eller endret single.php direkte i temaet, er det levert inn som papir til makuleringsmaskinen. Oppdateringer er sikkerhet og skal installeres — så endringene dine må bo et sted oppdateringen ikke når.
Obs
Aldri rediger i malertemaet
Temaet du bruker kalles malertemaet. Alle endringer i koden gjør du i et barntema — aldri direkte i originalen. Det gjelder også temaer du selv har laget fra bunnen av: vil du bygge videre på det senere, er arv fortsatt ryddigere enn å vokse én fil av gangen i en mappe du risikerer å bytte ut.
De to filene barntemaet trenger
Et barntema er en egen mappe under themes/ med — i sin mest minimale form — nøyaktig to filer: en style.css som peker på malertemaet, og en functions.php som laster malertemaets stiler.
/*Theme Name: Furuvik BarnTemplate: furuvikVersion: 1.0*/Det er Template-linjen som gjør magien: verdien må matche malertemaets mappenavn nøyaktig — store og små bokser teller. Det er slik WordPress vet at «Furuvik Barn» arver fra «furuvik».
<?phpadd_action( 'wp_enqueue_scripts', function () { wp_enqueue_style( 'furuvik-foreldre', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'furuvik-barn', get_stylesheet_uri(), [ 'furuvik-foreldre' ] );} );Slik velger WordPress filen
Når WordPress trenger en malfil, ser den i barntemaet først. Ligger filen der, brukes den; mangler den, brukes malertemaets versjon. Du kopierer altså bare de filene du faktisk vil endre — resten arver du still og rolig.
- Stilene dine lastes etter malertemaets — så CSS-en din overskriver der de kolliderer.
- Maler du ikke har kopiert, kommer fra malertemaet: hele hierarkiet og loopen følger med.
- Gjengitte biter (header, footer, template-deler) kan også overstyres per fil, samme prinsipp.
Tips
Kopier bare det du endrer
En liten barntema-mappe er en god barntema-mappe. Hver kopiert fil er en fil du selv må vedlikeholde når malertemaet oppdateres. Tommelfingerregelen: kopier en malfil først når du faktisk skal endre den.
Du kan nå
- forklare hvorfor direkte endringer i malertemaet forsvinner ved oppdatering
- lage de to filene et barntema trenger — style.css med Template og functions.php med enqueue
- si hvordan WordPress velger barnets fil først og ellers arver fra malertemaet