Lag child-tema


Hva er et «child» – tema?

Et «child»-tema er et tema som baserer seg på et annet overordnet tema, også kalt «parent» – tema. Et «Child» – tema er med andre ord et barn av et foreldre tema (parent tema). 

Et child (barn) – tema kan best betraktes som en kopi av parent (foreldre) temaet. Bruk av child-temaer er en glimrende måte å lære å lage egne temaer på, samtidig som dette er den beste måten å endre et eksisterende tema på for å tilføre det nye funksjoner eller endre utseende på det. Ved å opprette et child-tema av parent-tema får du en kopi av original temaet som du kan gjøre endringer i uten å ødelegge original temaet. Samtidig som du er sikret at de endringene du gjør i tema filene ikke blir overskrevet neste gang det kommer en oppdatering av parent-temaet. 

Et «child»-tema inneholder en referanse til «parent»-temaet, noe som innebærer at «child»- og «parent»-tema er i utgangspunktet identiske, helt til du gjør noen endringer i «child»-temaet. 

Hvordan virker et child -tema

Når WordPress leser tema-filene som utgjør «ansiktet» til nettstedet ditt, prøver WordPress alltid å lese fra child-temaet til det aktive temaet. Finner WordPress ingen child – tema eller hvis dette child – temaet ikke inneholder den forespurte filen, går WordPress videre og leter etter filen i parent versjonen av temaet.

Dette betyr med andre ord at hvis du har et «child»-tema med kun en style.css, vil «child»-nettsiden være identisk med «parent».nettsiden. Man kan si at «parent» er en slags backup av «child».

Ulemper

Ulempene med et child-tema er at du må kunne litt HTML-og PHP-koding, og du må vite hvordan du kopierer funksjoner (PHP-koder) fra den ene PHP-filen til den andre, for å ha nytte av «child»/«parent»-teknikken.

Fordeler

«Child»-tema har langt flere fordeler enn ulemper. De mest åpenbare fordelene er:

  • Hvis du finner et interessant tema, men mangler noen funksjoner, f.eks. er temaet litt annerledes enn du ønsker. Du kan da kopiere temaet, og lage ditt eget tema med de funksjonene du selv ønsker. Dette er et bedre alternativ enn å endre på eksisterende tema, da du ødelegger orginal filene så snart du endrer parent filene.

  • Hvis du har laget et «child»-tema, trenger du ikke å starte fra scratch, hvis du ønsker å lage din egen versjon av et bestemt tema.

  • Hvis det lanseres en oppdatering for «parent»-temaet, blir ikke «child»-temaet overskrevet.

Lag «child» med ett klikk

Det finnes en slags snarvei, en lettvinn måte å opprette «child»-tema, og det er bruk av utvidelsen One-Click-Child-Theme. Det eneste du trenger å gjøre er å installere utvidelsen, aktivere «parent»-temaet. Klikk på «Child Theme» i Utseende og Temaer. Legg inn navnet på temaet, en beskrivelse, ditt navn og klikk på «Create Child». Ferdig!

Child Theme Configurator er en annen utgivelse for å lage child-tema på en svært enkelt måte. Inneholder også et godt verktøy for å redigere den CSS-koden du ønsker å endre i ditt parent tema. YouTube videoen under viser kort hvordan denne utvidelsen virker.

Slik oppretter du «child»-tema manuelt

En annen måte er å lage «child»-tema manuelt. Opprett en ny mappe som undermappe i themes-mappen, altså mappen som har alle WordPress-temaer. Det blir undermappe i wp-content/themes. Gi temaet et nytt navn, og pass på å ikke ha mellomrom i navnet, for eksempel twentythirteen-child. Opprett filen style.css og legg denne i samme mappen.

Du kan eventuelt foreta noen endringer i filen, men følgende linjer må være på plass: «Theme Name» og «Template», det vil si navn og plassering på filen. Navnet på temaet må være unikt. Hvis ikke disse er med, vil ikke temaet vises på en ordentlig måte i kontrollpanelet.

Før du installerer et «child»-tema i din WordPress-installasjon, må «parent»-temaet være installert, altså temaet som «child»-temaet er basert på. Hvis ikke dette er på plass, vil ikke «child»-temaet dukke opp som ett av alternativene i din WordPress-installasjon

Når «parent»-temaet er på plass, kan du gå til Utseende, Temaer i kontrollpanelet, og da skal du se ditt «child»-tema som ett av alternativene. Dette kan du bare aktivere, og dette gjør du via Utseende, Temaer i kontrollpanelet – her skal altså «child»-temaet være som ett av alternativene.

«Child»-temaet er på plass, hva nå?

Videre redigering handler om å endre temaet slik du vil ha det. Du kan kopiere hvilken som helst PHP-fil til ditt «child»-tema, eventuelt lage nye PHP-filer. Det er en fin arbeidsmetode å alltid opprette et «child»-tema, før du gjør noen endringer på nettsiden din.

Et alternativ er å kopiere originale PHP-filene (såkalte mal-filer) fra «parent» til din egen mappe («child»-temaet), og her kan du bare prøve deg frem med endringer i koden.

Dette er noen av mal-filene som brukes i WordPress-temaer (du finner en komplett liste på wordpress.org):

  • index.php
  • header.php
  • footer.php
  • sidebar.php

Alle disse filene, som ligger i «child»-tema-mappen, overskriver samvarende filer i «parent»-tema.mappen, med ETT unntak, og det er filen functions.php.

Filen functions.php er forskjellig fra de andre

Filen functions.php i et «child»-tema er annerledes enn de andre filene, i den forstand at kommandoene i denne filen overskrever ikke kommandoene i «parent»-temaet, men de kommer i tillegg. Dette betyr i praksis, at du kan ikke bare kopiere filen functions.php fra «parent»-tema-mappen til «child»-tema-mappen, og legge dine egne PHP-funksjoner der.

Du trenger ikke filen functions.php i «child»-tema, med mindre du skal legge til ekstra funksjoner. Dessuten, trenger ikke filen functions.php i «child»-tema noen header, nettopp fordi kodene du skriver der, kommer i tillegg til kodene i functions.php i «parent»-temaet. Du trenger bare å legge eventuelle ekstra funksjoner, og ferdig med det.

YouTube videoen under viser hvordan du manuelt lager en child-tema til ditt parent-tema, med andre ord det vi nettopp har gått igjennom over.

Kilde: Dataportalen