Wenn du WordPress verwendest, ist auch mindestens ein Theme installiert. Sei es ein Standard-Theme oder ein individuelles. Möglicherweise möchtest du etwas ändern, was keiner der Editoren zu leisten imstande ist?
Die Lösung? Dateien einfach editieren? Das ist hier nicht 2002! WordPress unterstützt neben (automatischen) Updates für Plugins auch (auf Wunsch automatische) Updates für Themes – und davon solltest du dringend Gebrauch machen! Denn ein Theme ist längst nicht mehr (oder besser gesagt: war für WordPress noch nie) nur ein Stylesheet. Es ist Programmcode und der kann mithin ein Update benötigen. Zum Glück hat WordPress dafür eine Lösung.
WordPress unterstützt Child Themes
Die Lösung heißt Child Theme. Du erstellst gewissermaßen ein neues, leeres Theme, das aber auf einem vorhandenen basiert. Die Idee hinter dem Konzept ist, dass sich das System alle benötigten Dateien von dort holt, wo sie zur Verfügung stehen, bevorzugt vom Child-Theme.
Was bedeutet das? Angenommen, dein Theme hat eine Datei header.php
, die den Code für den Kopfbereich deiner Webseite definiert. Existiert sie ebenfalls in deinem Child-Theme, wird sie von dort geladen. Andernfalls vom Eltern-Theme, also vom Parent.
Child Theme: Am besten zu Beginn
Ein kleines Wort der Warnung aus der Erfahrung heraus: Du solltest das Child Theme erstellen, sobald du ein neues Theme verwenden möchtest. Während GeneratePress netterweise alle Einstellungen, die über den Customizer von WordPress vorgenommen wurden, übernimmt, habe ich es schon erlebt, dass bestimmte Elemente zurück auf ihre Standardwerte gefallen sind. Damit du deine Anpassungen nicht doppelt vornehmen musst, solltest du also direkt mit dem Child Theme starten.
Child Theme ohne Plugin
Wenn du durch das Internet streifst, auf der Suche danach, wie ein Child Theme erstellt werden kann, wirst du eine Menge Anleitungen finden, die dich auf ein Plugin verweisen. Dagegen ist im Grunde nichts zu sagen, doch ist es für eine derlei simple Aufgabe nicht notwendig, auf ein Plugin zurückzugreifen, das dann wahrscheinlich noch viel mehr tut, als du eigentlich benötigst und damit das System belastet. Deshalb machen wir es wie echte Nerds. Nämlich selber.
Wie kann ich ein Child Theme erstellen?
Angenommen, du verwendest das Theme GeneratePress. Dann befindet sich im Ordner wp-content/themes/
ein Ordner namens generatepress
, in dem besagtes Theme gespeichert ist. Darunter ist eine Datei style.css
, die du in einem Editor öffnest. Sie beginnt mit einer Reihe von Kommentaren. Diese sind wichtig für WordPress, um das Theme und dessen Eigenheiten besser einordnen zu können. Du solltest die Kommentare am besten kopieren.
In deinem Theme-Ordner erstellst du einen neuen Ordner, beispielsweise myawesometheme
. Du solltest nun also mindestens zwei Ordner sehen, generatepress
und myawesometheme
. In letzterem erstellst du eine neue Datei style.css
. Sie muss mindestens den folgenden Inhalt haben:
/*
Theme Name: NAME DEINES THEMES
Template: NAME-DES-PARENT-ORDNERS
*/
Du kannst auch die Kommentare aus der style.css
des Parents kopieren und entsprechend anpassen. Beachte aber, dass wir eine neue Zeile benötigen: Template: NAME-DES-PARENT-ORDNERS
NAME-DES-PARENT-ORDNERS
ersetzt du hierbei durch den Ordnernamen des Parent-Themes, also beispielsweise generatepress
.
Speichern, hochladen, aktivieren
Das war es prinzipiell schon! Du kannst die neue style.css
jetzt in deinen Theme-Ordner hochladen. Im WP-Admin suchst du Design > Themes auf und aktivierst dein Child-Theme. Den Parent, also das Original, darfst du natürlich nicht löschen.
Okay, nicht ganz. Im Fall von GeneratePress ist es so, dass die style.css
außer den von WordPress benötigten Informationen keinen tatsächlichen Code enthält. Das kann in deinem Theme anders sein. Falls es so ist, solltest du die style.css
des Parents mit laden. Das geht relativ einfach mit dem @import
-Befehl. Deine style.css
im Child könnte dann insgesamt so aussehen:
/*
Theme Name: My Awesome (Child) Theme
Author: John Doe
Description: Child theme for my website. Parent is GeneratePress.
Template: generatepress
*/
@import url('../generatepress/style.css');
Besonderheiten beim Child-Theme
Eingangs haben wir festgehalten, dass eine Vererbung stattfindet. Dateien, die im Child existieren, werden bei Bedarf geladen, andernfalls im Parent. Das gilt nicht für eine functions.php
. Falls eine existiert, wird sowohl jene im Child als auch die im Parent geladen.
Wenn du nun Code modifizieren möchtest, nimmst du die Datei aus dem Parent-Ordner und kopierst sie genau dorthin in deinen Child-Ordner. Du musst gegebenenfalls die Ordner-Struktur nachbilden. Dort kannst du die Datei dann nach deinen Wünschen anpassen.
Vorsicht bei Updates
Wenn das Parent-Theme ein Update erhält, kann es passieren, dass eine Datei in deinem Child nicht mehr kompatibel ist. Das würdest du daran merken, dass bestimmte Sachen nicht mehr richtig funktionieren oder deine Webseite gar komplett unerreichbar ist. In dem Fall hilft es, wenn du die fragliche Datei (siehe Fehlermeldung) mit der (neuen) originalen überschreibst und deine Änderungen erneut vornimmst. In der Praxis sollte das aber relativ selten passieren.
Weitere Informationen bei WordPress
Wenn du dich noch nie mit dem Thema befasst hast, ist ein Blick in die Entwickler-Dokumentation von WordPress empfehlenswert. Dort findest du noch weitere Aspekte zum Thema Child Theme und wie das System funktioniert.