wordpress-child-themeWordPress er et genialt system for mange, men kan samtidig være et helvede hvis det ikke er sat op korrekt fra starten. Flere gange har jeg oplevet at man har købt eller fået lavet et tema og så efterfølgende lavet store (eller små) ændringer i temaet’s filer, hvorefter der er kommet en opdatering og man har skulle finde frem til alle ændringer man selv har lavet, for at kunne lave dem i de nye filer.

Man kan, for at undgå dette lave det som hedder et “Child theme” til sit WordPress tema og derved undgå at miste ændringer man har lavet i sit tema.

Hvordan laver man et WordPress Child Theme

Er du ikke teknisk vidende på nogen måde vil jeg anbefale at du ikke forsøger selv. Det er nemt nok at lave et child theme, men hvis der nu alligevel går noget galt, så skal du have fat i en som kan rette det som er gået galt og lave child temaet.

Det tager kun nogle få minutter at sætte et child theme op eller lave det som det er det man egentlig gør.

Nå du kigger på dine filer for din side, har du en mappe som hedder wp-content (kan være ændret af hensyn til sikkerheden), i den mappe ligger  der en anden mappe som hedder “themes”. I themes ligger alle dine temaer som er insstalleret på din side og et af dem er nok det aktive tema (man kan godt have en WordPress uden at have et tema, giver bare ingen mening).

I dette eksempel har jeg et tema som jeg har kaldt “wordpress-theme”, der ligger derfor en mappe i wp-content /themes, som hedder “wordpress-theme”. I den mappe ligger alle tema filerne (style.css, functions.php osv.). Mit child theme skal have sin egen mappe. Så den opretter jeg i wp-content/themes/ og kalder den wordpress-theme-child. Nu kommer “den svære del” at få det til at virke.

Opret en tom fil med navnet style.css i mappen du lige har lavet. Skriv følgende i filen:

/*
 Theme Name: WordPress child theme
 Theme URI: https://dicm.dk/lav-et-wordpress-child-theme/
 Description: Et WordPress child theme
 Author: Kim Vinberg
 Author URI: https://dicm.dk
 Template: wordpress-theme
 Version: 1.0.0
 Tags: dicm, light, dark, responsive
 Text Domain: wordpress_theme_child
*/
@import url("../wordpress-theme/style.css");
/* Add your custom css below
-------------------------------------------------------------- */
body { }

For at få det til at virke med dit tema skal du ændre nogle af linjerne.

De første fem linjer behøver du ikke at ændre, men vil være bedst at kalde den noget du ved hvad er.

Linjen med “Template:” skal du ændre, så den hedder det samme som navnet på de tema du vil oprette child temaet til, i det her tilfælde “wordpress-theme”, da mappen i wp-content/themes/ hedder “wordpress-theme”.

Version & tags: linjerne behøver du heller ikke at skrive noget i lige nu.

Text domain: Denne linje er både vigtig og ikke vigtig, det afhænger af hvordan man bruger sit tema, men jeg vil anbefale at du laver et text domain som hedder tema_navn_child. Text domian benyttes til når du skal skrive tekst i temaet og hjælper så med at gøre det nemt at oversætte temaaet til andre sprog, tænker du at du ikke skal oversætte temaet, så skal du alligevel udfylde den, for det kan være ham eller hende som skal abejde med temaet benytter det.

Eksempel på hvordan det benyttes i en template fil (tema fil):

<?php
_e( 'Dette er dansk tekst', 'wordpress-theme-child' );
?>

Til sidst er der lige denne linje “@import url(“../wordpress-theme/style.css”);” som skal ændres, du ændre bare wordress-theme til det navnet som dit oprindelige tema’s mappe er. Så vil den hente alt styling ind på din child theme side når du aktiverer temaet om lidt.

Når du har udfyldt filen med dine oplysninger skal du gemme den. Derefter skal du logge ind i din wordpress installation (wp-admin) og under Appearance / Udseende skal du aktivere et nye Child theme.

Ændre du så udseende på side med et child theme

Du har nu et child theme og skal til at lave ændringer på din side, det er nemt.

Du kan nedenunder se en liste med nogle filer fra et child theme:

wordpress-child-theme-1

FIlen med navnet footer.php, indeholder kode som overskriver den oprindelige footer.php fra hoved temaet. Så når jeg her har oprettet en fil med navnet footer.php i min child theme mappe, så vil alt kode der står i det oprindelige tema, ikke længere være aktivt. På den måde kan jeg overskrive eller ændre kode i et tema, ved at benytte child themes.

Hvis man vil undgå child themes…

Jeg synes ikke der egentlig er et grundlag for at undgå at benytte sig af child themes, da de giver en selv større mulighed for at holde sin side opdateret med nyeste kode og eventuelt sikkerhed. Det er vigtigt at huske, at et tema også kan indeholde fejl som gør at en side ikke er sikret imod hacking.

Der er selvfølgelig dem som ikke kan finde ud af at arbejde med child themes (oftest fordi filerne jo mangler fra starten), til dem vil jeg anbefale at man køber sig et par timer hos en programmør som så sætter de filer op man ønsker at kunne ændre i, så man selv kan rode med filerne bagefter.

Der er også enkelte temaer som på en eller anden måde forhindre child themes og har man sådan et tema, så burde man skifte tema eller få lavet så det kan benyttes til child theme.

Lad være med at kopiere alle filer fra hovedtemaet ind i child temaet, det vil ikke give nogen mening at have et child tema.

 

Jeg håber du har fået en smule ud af dette indlæg og at du fremover også benytter child themes, du kan læse mere om child themes kan læses her: http://codex.wordpress.org/Child_Themes