Hvis du vil lave ændringer i dit WordPress tema, så kan jeg kun anbefale at lave et child theme. Ved du ikke hvad et det er? Eller kommer dit WordPress theme ikke med et allerede? Så læs med her!
Hvad er et child theme?
Et child theme er et WordPress tema, som nedarver funktionalitet og styling fra dit parent theme (forældre tema). Hvis du vil lave rettelser i et WordPress tema, så skal du gøre det i et child theme – hvorfor? Når du laver ændringer i et child theme, så bliver disse ikke overskrevet når du opdaterer dit parent theme.
Hvis du laver rettelser i dit parent theme, så vil disse blive overskrevet næste gang du opdaterer dit theme – og så er alt arbejde gået tabt. Du kunne også lade være med at opdatere dit parent theme – det vil jeg på det kraftigste fraråde. Det er super vigtigt at du holder dine themes og plugins opdateret – og ved at bruge et child theme, kan du gøre det med ro i maven, da dine ændringer ikke går tabt.
Hvordan virker et child theme?
Det er egentlig bare en “kopi” af dit parent theme.
Du får alle funktioner, features og styling med over fra dit parent theme – men du kan overskrive eller tilføje nogle ting, som ikke går tabt ved en opdatering af parent theme.
Dit child theme kan bestå af så lidt som 2 filer.
Du skal altid have functions.php og style.css med. Men i teorien kan det bestå af 100 andre filer, som du skal bruge. Lad os sige, at du skal lave en lille rettelse til din indlægsside – så vil du skulle gøre følgende:
- Kopier single.php fra parent theme over i dit child theme
- Lav din rettelse i single.php i dit child theme
- Gem filen
Dine rettelser vil herefter slå igennem, som hvis du lavede dem direkte i dit parent theme. Husk, så længe du kopierer stier og fil-navne, så vil dit child theme overskrive dit parent theme. Dette gælder dog ikke functions.php og style.css, da rettelser i disse filer bliver tilføjet og ikke overskrevet.
Hvorfor skal jeg bruge et child theme?
Det skal du hvis du tilføjer nye funktioner til din functions.php-fil, da disse ikke vil bliver overskrevet når du opdaterer dit parent theme. Det kan være, at du vil lave en custom post type – så ville jeg lave den i et child theme, hvis ikke jeg bruger et plugin til dette.
Kort sagt; Du skal bruge det fordi dine rettelser og tilføjelser ikke bliver overskrevet ved opdateringer. Jeg anbefaler at du altid opdaterer dine plugins og themes. WordPress themes kommer ofte med opdateringer, så det kan spare dig for en masse spildt arbejde.
Hvorfor skal jeg ikke bruge et child theme?
Der kan også være tilfælde hvor du ikke nødvendigvis behøver at bruge et. Det kan være du kan nøjes med WordPress’ indbyggede funktioner. Det kan være, at du skal lave en lille CSS-rettelse, i så fald bør du bruge WordPress’ standard CSS tilføjelser, som du finder under “Udseende –> Tilpas” og så vælger du “Ekstra CSS”. Heri vil du kunne skrive det CSS som du skal bruge, og herfter skal du bare klikke på “Udgiv” i toppen – og så er dine rettelser tilføjet.
Hvis du har fået skræddersyet et WordPress theme, så vil jeg ikke anbefale at du opretter et child theme, men i stedet tager fat i dem, som har udviklet dit theme. Har du ikke længere et samarbejde med dem, så vil jeg enten få nogen til at overtage eller evt. kigge efter et helt andet theme, da dette ikke bliver vedligeholdt af nogen.
Fordele og ulemper ved et child theme
Der vil altid være fordele og ulemper ved alt. Herunder finder du de fordele og ulemper, som jeg synes der er ved at bruge et child theme.
Fordele
- Ro i maven når du opdaterer dit parent theme. Det er vigtigt at holde dine themes og plugins opdateret – og dette kan du gøre med ro i maven.
- Det er nemt at lave udvidelser til din side. Får du brug for en custom post type, så vil du nemt kunne implementere dette i dit child theme, og ikke være bange for, at det er forsvundet når du opdaterer dit parent theme. Det gælder i øvrigt også alle andre rettelser, som du laver.
- Der er et sikkerhedsnet. Lad os sige, at du har lavet en ændring, som har ødelagt hele din side. Du vil altid kunne falde tilbage på dit parent theme og dets funktionaliteter. Laver du en funktion i functions.php – og er den skyld i en fejl 500 – så vil du kunne fjerne den ene funktion, uden at det påvirker en masse andet på din side. Med andre ord, du kan lynhurtigt spore dig ind på hvor problemet er opstået.
Ulemper
- Det kræver en vis kendskab til kodning at lave rettelser i et child theme. Det kan godt være, at det lyder nemt, at man bare kan kopiere en fil, og så foretage et par enkle rettelser – men hvad nu hvis dine rettelser er skyld i at siden går ned? Overvej om det er noget der kan løses med enten et plugin – ellers spørg en professionel om han/hun kan hjælpe dig.
- Du er afhængig af andre, i den forstand, at der er nogen som skal vedligeholde dit valgte parent theme. Hvis udvikleren af det parent theme, som du har valgt, ikke længere vedligeholder dette, så vil jeg anbefale, at du ser dig om efter et nyt theme. WordPress, og nettet generelt, udvikles konstant – og det er vigtigt at dit theme altid er up to date.
Guide: Hvordan laver jeg et child theme?
Der er hele 3 måder at gøre det på – den ene nemmere end den anden. Hvis du ikke er tryg ved at kopiere nogle filer over selv, så kan du trygt bruge et plugin eller en online service – men mere om det herunder.
Gør det selv
Hvis du vil gøre det selv, skal du have adgang til din server via FTP. Når du er logget ind på serveren, skal du navigere til “wp-content/themes” – her skal du så oprette en mappe, som skal indeholde dine filer. Lad os sige, at du bruger temaet “Astra” – så vil jeg kalde mappen “astra-child”.
Når mappen er oprettet, skal du oprette en style.css fil – og den skal indeholde følgende:
/*
Theme Name: Astra Child
Theme URI: https://wptricks.dk
Description: Dette er et child theme til Astra temaet
Author: Aris Kuckovic
Textdomain: wptricks
Author URI: https://wptricks.dk/
Template: astra
Version: 1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
Ovenstående er en “standard” blok af kode, som du skal smide i din style.css. Når det er sagt, er der særligt 3 linjer, som du skal være særlig opmærksom på.
- Theme Name: Dette er temaets unikke navn. Du kan egentlig navngive den som du vil, men for denne guides skyld, har jeg valgt at navngive den Astra Child.
- Textdomain: Dette bruges når du skal oversætte strenge i dit theme. Den er meget god at have, hvis nu du skal tilføje noget kode, som skal virke med f.eks. Polylang eller WPML.
- Template: Uden denne virker dit child theme ikke. Det er meget vigtigt, at du skriver forældretemaets mappenavn, og ikke temanavn her. Mappenavnet finder du i din FTP under “wp-content/themes”.
Når du har udfyldt og gemt dette, vil du kunne se, at dit child theme dukker op når du kigger under “Udseende –> Temaer”. Hvis du så aktiverer dette, vil du også lægge mærke til at al styling mangler – og det er fordi, at vi mangler at oprette functions.php.
Du skal derfor ind i din FTP igen – og navigere ind i child theme mappen, og oprette filen functions.php. Når du har gjort dette, skal du indsætte følgende:
<?php
/* Script til at hente parent theme styling */
function childtheme_parent_styles() {
wp_enqueue_style( 'parent', get_template_directory_uri().'/style.css' );
}
add_action( 'wp_enqueue_scripts', 'childtheme_parent_styles');
Her er det super vigtigt, at du husker at starte denne fil med en <?php – og der må ikke være mellemrum eller whitespace før dette tag – det skal stå som det første og øverste i filen. Når du har kopieret ovenstående kode ind i functions.php, skal du gemme og uploade filen til dit child theme – herefter vil du se, at al styling fra parent theme er kommet med over, og du kan nu begynde at redigere.
Oplever du, at det fejler selvom du har fulgt ovenstående guide, så kontakt mig, så skal jeg nok hjælpe dig igennem.
Brug et plugin
Hvis du vil oprette et child theme hurtigt og nemt, så er dette plugin vejen frem. Child Theme Generator er et plugin, som du kan downloade fra WordPress’ eget plugin-bibliotek. Det er den sikreste måde, at oprette et child theme, hvis ikke du føler dig helt sikker ved at gøre det selv.
For at oprette et child theme med dette plugin skal du gøre følgende:
- Gå ind under “Plugins –> Tilføj nyt”
- Søg efter “Child Theme Generator”
– Sørg for at du vælger det plugin, som er udviklet af Serafino Corriero - Installér og aktivér pluginnet
- Gå til “Indstillinger –> Child-Theme Gen”
- Indtast de oplysninger, som du har brug for, og klik på “Opret et nyt undertema”
– Som pluginnet skriver, så er alle felter valgfrie – indtast kun dem, som du selv tænker du har brug for.
Når du har gjort ovenstående, har du oprettet et child theme – nu kan du gå i gang med at redigere.
Gør det via en online service
Dette er den mest irriterende måde, hvis du spørger mig. Men ikke desto mindre er det en mulighed. Den er irriterende, for du skal alligevel indtaste en masse oplysninger, og så skal du alligevel logge ind med FTP og uploade dit theme.
For at oprette det via en online service, skal du gøre følgende:
- Du skal gå ind på childtheme-generator.com
- Udfyld de påkrævede oplysninger. Bemærk, du bliver spurgt efter “The slug of your Parent Theme” – her skal du skrive dit forældre temas mappenavn – det svarer til “Template” når du vil gøre det selv.
- Generer dit child theme, hvorefter du får en ZIP-fil med dit child theme.
- Udpak denne zip-fil
- Log ind på din FTP – og naviger til “wp-content/themes”
- Upload dit child theme til “themes” mappen
- Log ind på dit WordPress kontrolpanel, og gå ind og aktiver dit child theme
Denne metode er også en smule risikabel – for hvis du ikke udfylder formularen korrekt, er det ikke sikkert at dit child theme virker.
Har du købt dit theme?
Hvis du har købt dit theme, så kan du næsten forvente at der er et child theme. Nu skriver jeg næsten, for der er også forskel på om du har købt dit theme hos f.eks. Themeforest eller Divi – eller om det er et theme du har købt af en udvikler, som har skræddersyet det for dig.
Jeg har købt mit theme hos Themeforest eller lign.
Jeg har købt utallige themes hos Themeforest, og jeg har endnu ikke oplevet, at der ikke allerede er et child theme med i ZIP-filen, som du kan downloade når du har købt et theme. Om det er et krav fra deres side, eller om det bare er kutyme ved jeg ikke noget om – men én ting er helt sikkert – det sparer mig for at skulle gøre det.
Hvis du betaler for et theme, så skal du forvente at det er med – det gør jeg i hvertfald.
Jeg har købt et skræddersyet theme
Hvis du har købt et skræddersyet theme fra en udvikler, så skal du ikke forvente et child theme. Det kan forekomme, at udvikleren har bygget dit theme ovenpå et framework-theme som f.eks. Genesis – og så har du allerede et child theme – men ellers skal du ikke forvente det, da det er kodet specielt til dig.
Fremtidige opdateringer er noget du skal købe dig til, da der ikke er ugentlige/månedlige opdateringer ligesom når du køber et theme hos f.eks. Themeforest.
Skriv et svar