Hoe maak je een ‘Child Theme’ in WordPress 3.x?
Na de vorige uitleg over de werking van Themes in WordPress bereikte mij de vraag hoe je een Child Theme kan aanmaken en hoe je daarin eigen bewerkingen kan doen.

• Met slechts 3 bestanden is al heel wat aan de vormgeving binnen een Child Theme aan te passen
• Onderstaande instructies werken in zowel singlesite- als in multisite mode
• Plaats in de Child CSS file alleen de uitzonderingen ten opzichte van de parent CSS
• Download gratis de voorbeeldbestanden om zelf mee te experimenteren
Als basis neem ik daarvoor het door WordPress aangeleverde ‘Twenty Ten’ Theme (versie 1.2). In de map wp-content/themes/ staat de map ‘twentyten’. Dat is de basis, waarin we geen wijzigingen willen aanbrengen. De inhoud van alle files blijft daarin dan ook ongewijzigd.
Bij het maken van een Child Theme zijn minimaal drie bestanden nodig, zodra deze zijn aangemaakt, dan herkent WordPress dat als een Theme in het admin deel en kan het ook als zodanig worden geactiveerd.
- functions.php
- header.php
- style.css
Wil je bijvoorbeeld ook de footer veranderen, dan kopieer je footer.php vanuit het oorspronkelijke theme en breng je in de child map de veranderingen aan. Om slechts teksten (bijvoorbeeld taalversies) te veranderen, is het niet raadzaam een Child Theme te maken, veelal is het makkelijker om dan de juiste taalmodule te installeren voor het gehele theme in wp-content/languages/. Na een update van het theme blijven die bestanden bestaan en blijft de gekozen taal actief.
Aan de slag met de basis.
Maak in de themes folder dus een lege map aan met de naam van je theme. De file functions.php vul je met:
/**
* Custom Functions for a Twenty Ten Child theme
*
*/
De file header.php is een kopie van de originele header.php vanuit je bestaande theme. Style.css vul je met de volgende gegevens (die je ook terug ziet bij het activeren van je Child Theme):
/*
Theme Name: Peter Luit Theme
Theme URI: http://www.peterluit.nl
Description: Mijn eerste Child Theme op basis van Twenty Ten versie 1.2
Author: Peter Luit
Author URI: http://www.peterluit.nl
Template: twentyten
Version: V1.0.0
*/
@import url(‘../twentyten/style.css’);
Met name de laatste zin in belangrijk, daarin staat dat de basis css file opgehaald moet worden uit de het bestaande theme. Je activeert het Theme, zoals je gewend bent in een singlesite of multisite omgeving (zie onderstaand voorbeeld).
![]()
Stel dat je de titel en het bijschrift van de standaard instellingen bij het Twenty Ten theme zou willen verwijderen. Dan moet je aan de slag in header.php.

Zoek het volgende stuk code op:

Verwijder dat deel, save het bestand (let op toegangs privileges) en ververs de pagina. Titel en bijschrift zijn dan in het Child Theme verwijderd, terwijl het Parent Theme gewoon in tact is gebleven. Met de nodige kennis van PHP, HTML en CSS kunnen dus in het Child Theme vele vormgevings aspecten worden uitgevoerd, zonder de basis te veranderen.
Wil je bijvoorbeeld af van de zwarte lijn rondom het headerbeeld, dan voeg je de volgende code toe aan je nieuwe CSS file:

In de oorspronkelijke CSS file stond namelijk:
border-top: 4px solid #000; en border-bottom: 1px solid #000;. Dus zwarte kaders van 4 resp. 1 pixel.
Soms zullen bepaalde instellingen in alleen de CSS file niet voldoende zijn. In functions.php wordt bijvoorbeeld gecontroleerd of het headerbeeld wel 940 x 180 pixels is, wil je dat veranderen in 1024 x 160, dan zijn onderstaande twee regels noodzakelijk in je eigen functions.php:
define( ‘HEADER_IMAGE_WIDTH’, apply_filters( ‘twentyten_header_image_width’, 1024 ) );
define( ‘HEADER_IMAGE_HEIGHT’, apply_filters( ‘twentyten_header_image_height’, 160 ) );
Er is dus wel wat kennis nodig om met Child Themes aan de gang te gaan. Let goed op hoe de structuur van je eigen Theme er uitziet. Sommige themes bieden bijvoorbeeld ook de mogelijkheid een custom CSS file te vullen met eigen instellingen, zonder dan gebruik te hoeven maken van een Child Theme.
Persoonlijk geef ik de voorkeur aan themes die een export functie hebben, waarin de instellingen worden opgeslagen, zodat na een update de instellingen weer in het nieuwe theme kunnen worden terug gezet. Voorwaarde is wel dat de datastructuur van het export bestand ongewijzigd blijft, of op zijn minst backward compatible.
Themes zoals Atahualpa bieden die mogelijkheid. Dit theme zet echter met bijna ontelbare instellingen alle overeenkomstige CSS ‘opdrachten’ in elke pagina die wordt weergeven. Technisch gezien is dit niet fraai, waardoor velen dit theme verafschuwen vanwege de behoorlijk ongestructureerde opbouw. Maar ondanks die beperking is het theme enorm populair, je kunt zonder directe CSS kennis vrijwel elke gewenste vormgeving binnen Atahualpa maken. Echter veel van de binnen Atahualpa te verwerken parameters zijn direct in CSS te gebruiken, zodat het op zichzelf wel een goede ‘leerschool’ is om de eerste stapjes in CSS te zetten.
Op peterluit.nl is het resultaat te zien van bovenstaande bewerkingen, waarbij ook het headerbeeld clickable is gemaakt met de logische verwijzing naar de homepage. Daarnaast is de layout voorzien van 3 kolommen, dus 2 in plaats van 1 sidebar.
3 Responses to Hoe maak je een ‘Child Theme’ in WordPress 3.x?
Geef een reactie Reactie annuleren
Zoek
newmediabrains

Peter Luit maakt sinds 1 februari deel uit van het trainersteam van NewMediaBrains in Rotterdam. Hij zal zich naast de bestaande trainers richten op trainingen die liggen op het snijvlak tussen strategie en operatie voor diverse media workflows.
Volgende 'social media + in ONE day' op 14 juni
e-reading & tablet event 19 maart 2013

Op 20 maart 2012 was ik voor een tweetal parallel sessies gespreksleider tijdens het 'e-reading & tablet event', welke na een aantal edities op de High Tech Campus in Eindhoven nu in 't Spant in Bussum groots werd opgezet.
Volgend jaar vindt het event plaats op 19 maart 2013.
Nieuwe training van Peter Luit bij het Centrum voor Communicatie en Journalistiek

In zijn geheel herschreven, de training: Effectieve inzet van cross en social media. Dit voorjaar werd de training gegeven vanaf 15 mei.
help ze willen vrienden worden, door Suzanne de Bakker, Sak van den Boom, Peter Kerkhof en Peter Luit

Bestellingen via Customer Media Council. U verkrijgt dit 'must have customer media handboek' voor slechts €20 ex BTW, verzendkosten zijn €2,50.
Gespreksleider bij ‘Bladen in Den Haag’

Op 10 november was ik gespreksleider bij de forumsessie 'Bladen in Den Haag'. Eén keer per jaar is Bladen in De Balie onderdeel van De Nationale Uitgeefdag. Dit jaar vindt deze dag plaats in het World Forum in Den Haag. Deze sessie van ‘Bladen in Den Haag’ op locatie stond in het teken van de nieuwe journalistiek van de opiniebladen. Hoe zetten Vrij Nederland, De Groene Amsterdammer, Elsevier en HP/De Tijd digitale kanalen in?
Aanleiding was het besluit van Vrij Nederland om het vorig jaar gewonnen prijzengeld behorende bij de Mercur d'Or/LOF-prijs voor Publiekstijdschriften in te zetten voor de stimulering van de digitale ontwikkeling van het weekblad.
Behalve Vrij Nederland’s hoofdredacteur Frits van Exter namen deel: René van Rijckevorsel, adjunct-hoofdredacteur van Elsevier en verantwoordelijk voor internet, Frank Poorthuis, hoofdredacteur van HP/De Tijd, en Teun Gautier, uitgever van De Groene Amsterdammer.
Panamalezing 2011 door Peter Luit

Geschreven in opdracht van Customer Media Council in Heemstede. Een gebalanceerde optekening van de ontwikkelingen op het gebied van print, on-line en mobiel in relatie tot de brievenbus reclame. Als PDF gratis te downloaden.
Bekijk de presentatie.
Laatste nieuws
Op 14 mei hielden Jeroen van der Veen, Jeroen Bakker en Peter Luit drie inspirer...De apps van de Financial Times waren afgelopen augustus al uit de AppStore verwi...Thuis is het allemaal geen probleem om met meerdere computerschermen beelden en/...Een bedrag van 300 miljoen dollar is niet veel om de concurrentie aan te gaan me...Links en rechts trekt er wel eens een uitgever de stekker uit een native app en ...Vier jaar geleden deed ik kort verslag over wat ik DRUPA 1.0 noemde, in de hoop ...Het maken en onderhouden van een rendabele webshop kent vele aspecten. Zelf doen...[caption id=\"attachment_7868\" align=\"alignleft\" width=\"242\" caption=\"Beeld afkom...In samenwerking met MKB IJmond, Bibliotheek Velsen en KvK zijn 3 parallelle work...Soms kom je een WordPress plugin tegen, waarbij je voelt dat je er nooit meer bu...Recente reacties
- Peter Luit op Types – plugin voor Custom Post Types en Custom Fields
- Peter Berger op Types – plugin voor Custom Post Types en Custom Fields
- Peter Luit op WordCampNL 2012: 2 dagen volop WordPress inspiratie
- Peter Luit op Responsive design: uitdaging voor ontwerpers
- Niek de Bruijn op Responsive design: uitdaging voor ontwerpers
Meest besproken categoriën
- Opinie (RSS) (286)
- Ondernemingen (RSS) (231)
- Uitgeverijen (RSS) (213)
- Events (RSS) (183)
- Kranten (RSS) (141)



Ik heb gekeken op je site, en ziet er goed uit. Zowel de layout als het verhaal
Hoi Peter,
Complimenten met deze heldere uitleg over een ‘child theme’… heb het getracht te doen voor mezelf, maar het lukt helaas nog niet helemaal.
Heb enkele wijzigingen gedaan in de originele footer.php / functions.php / style.css en deze gekopieerd en bewaard op mijn pc. Kan ik deze nu na een upgrade van WP ook weer gewoon handmatig wijzigen? Door ze terug te kopiëren zeg maar…
Kun je je zin “Plaats in de Child CSS file alleen de uitzonderingen ten opzichte van de parent CSS” wat verder uitwerken? Daar zit ‘m wellicht de clou in om het wel werkend te maken?!
@Ewien: als ik jouw reactie goed lees, dan heb je dus wijzigingen aangebracht in de originele files in het parent theme. Dat is niet correct. Als je wijzigingen wilt in bijvoorbeeld je footer.php, dan maak je zelf footer.php aan in je child directory/map en daar plaats je de veranderingen in ten opzichte van footer.php in de parent.