WordPress child theme: je aanpassingen zijn weg na een thema-update, wat nu
Een WordPress child theme is een apart, klein thema dat het uiterlijk en de functies van het hoofdthema gebruikt en alleen jouw wijzigingen bevat. Brengt de maker een update uit, dan vervangt WordPress de bestanden van het hoofdthema en laat het het child theme ongemoeid. Elke aanpassing in bestanden van het thema hoort dus daar, niet in het origineel.
Auteur: Het TellMyShop-team. Een gids voor eigenaren van WordPress-websites en WooCommerce-winkels: de oorzaak, de oplossing met de hand en hetzelfde werk in een gesprek met de chat.
Laatst bijgewerkt: · 7 min lezen
Hoe het meestal gaat: er waren aanpassingen, er was geen child theme
Het verhaal is bijna altijd hetzelfde. Iemand, misschien jij, misschien een handige vriend, misschien een bureau drie jaar geleden, heeft iets aan de bestanden van het thema toegevoegd. De tekst in de footer gewijzigd in footer.php, de code van Google Analytics in header.php gezet, een paar regels in functions.php geplakt, kleuren aangepast in style.css van het thema. Alles werkte.
Toen verscheen er een bolletje naast Updates in het dashboard. Je klikte op Bijwerken, want WordPress raadt zelf aan alles bij te werken. De site ziet er nu uit zoals op de dag dat het thema werd geïnstalleerd: de oude footer is terug, de kleuren ook, en in je statistieken daalt het verkeer ineens.
Bij de update heeft niemand een fout gemaakt. Een thema-update vervangt gewoon de bestanden door de nieuwe versies van de maker. Hij weet niet welke regels van jou waren, dus houdt hij ze niet.
Kun je terughalen wat verdwenen is?
Alleen uit een kopie van de bestanden van voor de update. Controleer op volgorde:
- De back-ups van je hostingpartij. De meeste hostingpartijen bewaren back-ups van bestanden van de laatste dagen. Zet daaruit alleen de map van het thema terug, niet de hele site, en zeker niet de database van de webshop, anders raak je nieuwere bestellingen kwijt.
- Een back-upplugin. Heb je er een, open dan de laatste back-up van voor de update en haal de themabestanden eruit.
- De computer van wie de wijzigingen heeft gemaakt. Ontwikkelaars bewaren de gewijzigde bestanden vaak op hun eigen computer.
- Een oude versie van de site in een internetarchief. Die geeft je geen PHP-code, maar toont wel de tekst en het uiterlijk die je opnieuw moet opbouwen.
Heb je de oude bestanden, upload ze dan niet terug in het hoofdthema. Vergelijk ze met de nieuwe en zet alleen de wijzigingen in een child theme. Anders doet de volgende update precies hetzelfde.
Wat in het child theme hoort en wat ergens anders
Niet elke aanpassing heeft een child theme nodig. WordPress slaat veel visuele wijzigingen op in de database, en daar blijven thema-updates van af.
| Wijziging | Waar je haar bewaart | Overleeft een thema-update |
|---|---|---|
| Kleur van knoppen, witruimte, lettertype | Extra CSS of de globale stijlen van een blokthema | ja |
| Footer, header in een blokthema | sjabloon in de site-editor | ja, tot je van thema wisselt |
| Gewijzigd sjabloonbestand (footer.php, single.php) | een kopie van het bestand in het child theme | ja |
| Eigen code in functions.php | functions.php van het child theme of een kleine plugin | ja |
| Verificatiecode van Google, statistiekenscript | een SEO-plugin of een plugin om code in te voegen | ja |
| Wijziging in een bestand van een plugin | instellingen van de plugin; een child theme helpt niet | nee, verdwijnt bij een update van de plugin |
De korte regel: raakt de wijziging een bestand in de map van het thema, dan heb je een child theme nodig. Voor alleen een kleur is Extra CSS in WordPress genoeg.
Zo zet je een child theme op, stap voor stap
Een child theme is een map in wp-content/themes met een bestand style.css waarvan de header het hoofdthema noemt. Klassieke thema’s hebben meestal ook een bestand functions.php dat de stijlen van het hoofdthema laadt. De bestanden staan precies beschreven in het WordPress-themahandboek over child themes, en GoDaddy heeft een eenvoudigere handleiding met voorbeelden.
Met de hand gaat het zo:
- Maak een back-up van je bestanden en database in het hostingpaneel.
- Maak in de bestandsbeheerder een map naast het hoofdthema, bijvoorbeeld themanaam-child.
- Voeg style.css toe met een header: de naam van het child theme en een regel Template met de mapnaam van het hoofdthema.
- Voeg in een klassiek thema functions.php toe dat het stylesheet van het hoofdthema laadt.
- Activeer het child theme in Weergave → Thema’s.
- Controleer het menu, het logo, de kleuren en de widgets. Sommige instellingen van de Customizer worden per thema apart opgeslagen, dus na het wisselen moet je ze soms opnieuw instellen.
- Pas nu zet je je wijzigingen over: kopieer het sjabloonbestand dat je wijzigt naar het child theme en bewerk de kopie.
Sommige makers van thema’s bieden een kant-en-klaar child theme om te downloaden. Is dat er, gebruik het dan. Hostinger zet op één plek de manieren om eigen CSS toe te voegen, ook via een child theme bij elkaar.
Blokthema’s: waar je aan denkt
In blokthema’s, zoals het standaardthema Twenty Twenty-Four en nieuwer, maak je de meeste wijzigingen in de site-editor. WordPress slaat gewijzigde sjablonen en globale stijlen op in de database en koppelt ze aan het thema waarin ze zijn gemaakt. Wissel je naar een child theme, dan kunnen die wijzigingen uit beeld verdwijnen, omdat ze bij het hoofdthema horen. Noteer voor het wisselen wat je in de editor hebt gewijzigd, of vraag je websitebeheerder die wijzigingen over te zetten.
Raak je in een blokthema geen bestanden aan, dan heb je vaak helemaal geen child theme nodig. De site-editor is genoeg.
Zo zet de chat een child theme op met een voorbeeld
De TellMyShop-plugin voor WordPress en WooCommerce geeft je chat (Claude of ChatGPT) een tool die een child theme van het actieve thema maakt. Hij zet de nodige bestanden op, en bij het activeren kopieert hij de instellingen van de Customizer van het hoofdthema: menulocaties, logo en kleuren. In een blokthema waarschuwt het voorbeeld je als er wijzigingen in de site-editor zijn die aan het hoofdthema gekoppeld zijn.
Jij: Na de thema-update is de oude footer terug. Zorg dat het niet nog eens gebeurt.
Je chat: Het actieve thema is het klassieke thema Astra, zonder child theme. Voorbeeld:
De footer zet ik in een tweede stap over, met een apart voorbeeld van het bestand. Opslaan? (ja / nee)
Jij: Ja.
Je chat: Opgeslagen. De homepage en een bericht reageren correct, en het menu en het logo staan op hun plek.
oude versie: Actief thema: Astra
nieuwe versie: Actief thema: Astra Child (nieuwe map astra-child, style.css en functions.php)
nieuwe versie: Gekopieerde instellingen: menu’s in header en footer, logo, kleuren
De namen in dit gesprek zijn voorbeelden. Een child theme opzetten en bestanden van het thema wijzigen werkt in TellMyShop Pro zodra je de schakelaar Thema in het pluginpaneel aanzet. De schakelaar geldt 24 uur en vraagt om een databaseback-up van vandaag, die de plugin zelf maakt voor de eerste wijziging van de dag. Voor elk bestand wordt opgeslagen, wordt er een kopie van gemaakt, en PHP-bestanden worden op syntaxfouten gecontroleerd. Het opzetten van het child theme maak je ongedaan vanuit de wijzigingsgeschiedenis: de plugin zet het thema terug en verwijdert de bestanden die hij heeft gemaakt. Meer over ongedaan maken in de handleiding over wijzigingen ongedaan maken in WordPress.
Wat de chat niet doet: aanpassingen terughalen waarvan nergens een kopie is, of de back-ups van je hostingpartij terugzetten. Het bestand wp-config.php is altijd geblokkeerd.
In TellMyShop Free toont de chat de lijst met thema’s en plugins met versies en beschikbare updates, zodat je voordat je op Bijwerken klikt ziet welk thema actief is en wat er op een update wacht. Free leest geen themabestanden. Werkt de site na een update helemaal niet meer, begin dan met WordPress kapot na een update. De gratis versie download je op de pagina TellMyShop Free, en Pro staat beschreven op de pagina TellMyShop voor WordPress en WooCommerce. De prijzen staan op de pagina prijzen.
Vragen en antwoorden
Kan ik de aanpassingen terughalen die een thema-update heeft gewist?
Alleen uit een kopie van de bestanden van voor de update. Zoek er een in de back-ups van je hostingpartij, in een back-upplugin of bij wie de wijzigingen heeft gemaakt. Is er geen kopie, dan moeten de aanpassingen opnieuw worden opgebouwd uit schermafbeeldingen of een oude versie van de site.
Maakt een child theme mijn site trager?
Meestal merk je geen verschil. Een child theme is een kleine map met een paar bestanden, en de rest haalt WordPress uit het hoofdthema. Controleer na het activeren de homepage, een bericht en, in een webshop, de winkelwagen.
Verdwijnen het menu en het logo als ik een child theme activeer?
Dat kan, omdat WordPress sommige instellingen van de Customizer per thema apart opslaat. Zet je een child theme met de hand op, dan moet je menulocaties, het logo en de kleuren soms opnieuw instellen. Activeert de TellMyShop-plugin een child theme, dan kopieert hij deze instellingen van het hoofdthema.
Heb ik een child theme nodig voor een kleine kleurwijziging?
Nee. Kleine visuele wijzigingen zet je het best in Extra CSS of in de globale stijlen van een blokthema. Een child theme heb je nodig als je bestanden van het thema wijzigt, bijvoorbeeld het sjabloon van de footer of functions.php.
Beschermt een child theme tegen updates van plugins?
Nee. Een child theme bewaart alleen wijzigingen in bestanden van het thema. Wijzigingen in de bestanden van een plugin verdwijnen bij een update, dus zulke aanpassingen maak je via de instellingen van de plugin, of in het child theme als de plugin dat toelaat.
WordPress is een handelsmerk van de WordPress Foundation. WooCommerce is een handelsmerk van Automattic Inc. Claude is een handelsmerk van Anthropic PBC. ChatGPT en OpenAI zijn handelsmerken van OpenAI. TellMyShop is niet gelieerd aan deze bedrijven.