Den Nutzen eines Child-Themes für WordPress kennen wir Blogger alle: es können Anpassungen am Aussehen gemacht werden, ohne in das gewählte Theme einzugreifen. Was natürlich den Vorteil bringt, dass bei Aktualisierungen des „Haupt-Themes“, auf dem das Design unseres Blogs beruht, alle Änderungen, die wir gemacht haben, erhalten bleiben.
THEMEN IN DIESEM BEITRAG
Ein Beispiel
Du benutzt beispielsweise das WordPress-Theme „Parabola“ (das benutze ich auch) und möchtest ein paar kosmetische Eingriffe vornehmen, also das Design verändern. Dazu ändert man die CSS-Einstellungen ab, was bei Parabola sehr einfach geht (Design > Parabola Settings > Custom CSS). So weit, so gut. Diese Änderungen bleiben auch nach einem Update des Themes erhalten, also ist alles gut. Was aber, wenn Du hart in den PHP-Code eingreifen willst, weil verschiedene Plugins das erfordern? Dann kann man diese Änderungen selbstverständlich über Design > Editor in die jeweiligen Dateien schreiben.
So, und dann wird das Theme upgedatet und man stellt erstaunt fest: „Shit, meine Code-Änderungen wurden überschrieben und sind nicht mehr da!“. WordPress bietet daher die Möglichkeit, ein so genanntes „Child Theme“ anzulegen und genau diese Problematik zu umgehen. Dazu muss man eine angepasste style.css– und eine spezielle functions.php-Datei in ein neues Verzeichnis auf dem Server hochladen. So weit, so gut. Jeder, der mit WordPress arbeitet, ist sicherlich nerdig genug und hat keine Angst, auf dem FTP-Server Verzeichnisse anzulegen und Dateien hochzuladen. Es gibt verschiedene Anleitungen, wie man auf diese Weise ein „Child-Theme“ erstellt, in dem man dann nach Belieben rumwuseln kann, ohne den Code des zugrundeliegenden Themes zu ändern. Fragt einfach mal Google & Co., dann findet Ihr genug Beispiele (s. links).
Komplizierte Vorgehensweise leicht gemacht
Ich habe mich durch die Tutorials von cryoutcreations (dem Anbieter meines Themes), elmastudio und den netzialisten gelesen, alles gemacht, was verlangt wurde, die Theorie dazu gelesen, die Tipps studiert aber leider nur ansatzweise ein funktionierendes Child-Theme hinbekommen. Letztlich hat das Theme nicht immer das gemacht, was es soll – ziemlich frustrierend. Da dachte ich mir „da muss es doch ein Plugin für geben!“. Und tatsächlich, es gibt (nicht nur) eins. Meine Wahl fiel auf „One-Click Child Theme“. Total idiotensicher!
Man installiert das Plugin über Plugins > Installieren (Ihr wisst wie das geht) und aktiviert es. Dann klickt man auf Design > Themes und selektiert das Theme, von dem man ein Child-Theme installieren will. Dort gibt es dann einen Button „Child Theme“, den man anklicken muss. Ein paar wenige Daten werden abgefragt, u.a., wie das neue Child-Theme heißen soll (hier könnt Ihr Euch einen Namen ausdenken). Und mit einem weiteren Klick ist alles fertig und das neue Child-Theme ist automatisch erstellt worden!
Was passiert im Hintergrund?
Vom Plugin wird auf Eurem Server ein Unterverzeichnis erstellt, das so heißt, wie der Name, den Ihr für Euer neues Child-Theme erstellt habt. Außerdem wird eine style.css-Datei und eine functions.php erstellt, die alle notwendigen Angaben enthält. Ihr braucht Euch nur noch um eine Sache kümmern: den Screenshot, der für Euer neues Child-Theme erstellt werden soll. Das ist eine PNG-Datei, die 880 x 660 Pixel groß ist. Die müsst Ihr in das neue Verzeichnis hochladen und die existierende screenshot.png ersetzen. Muss man aber nicht wirklich machen, wenn man mit dem automatisch generierten Screenshot leben kann (dieser wird im Backend unter Design > Themes angezeigt).
Tipp: wenn das Child-Theme erstellt ist, könnt Ihr unter Design > Themes das Child-Theme anwählen und dann auf den Button „Child Theme“ klicken. Ihr habt dann die Möglichkeit, automatisch einen Screenshot erstellen zu lassen. Nur für den Fall, dass man das nicht selbst machen und per FTP hochladen will.
Und nun beginnt das Styling
Wer ein Child-Theme erstellt, wird seine Gründe hierfür haben und wissen, was er/sie tut: man will den Style ändern und/oder Funktionen hinzufügen, ohne Angst zu haben, dass diese beim nächsten Theme-Update überschrieben werden. Das Plugin erstellt nur die Basics, nämlich die style.css und die functions.php, die das eigentliche Child-Theme erstellen. Viele Plugins erfordern aber, dass man selbst Hand an den Code anlegt, der in den einzelnen PHP-Dateien steht. Diese gibt es aber noch nicht in dem Ordner für das Child-Theme, also müssen sie eingebunden werden. Auch dafür hat das Plugin eine Funktion: unter Design > Themes > [Name Eures Themes] gibt es noch verschiedene Optionen, mit denen man auch die entsprechenden Dateien aus dem „Eltern-Verzeichnis“, z.B. die header.php etc. in das Child-Theme-Verzeichnis kopieren kann: einfach die entsprechende Datei auswählen und auf „Copy Template“ klicken. Fortan steht die Datei im Editor zur Verfügung und kann nach Belieben verändert werden. Wichtig: Änderungen an den kopierten Child-Dateien haben immer Vorrang vor den entsprechenden Dateien im Eltern-Verzeichnis.
Zusammenfassung und Fazit
- Plugin „One-Click Child Themes“ installieren
- Das gewünschte Theme anwählen und „Child Theme“ anklicken – style.css und functions.php werden automatisch erstellt, das Child-Theme ist somit erstellt
- Auf Wunsch mithilfe des Plugins einen Screenshot erstellen lassen und weitere Dateien vom Eltern- in das Child-Verzeichnis kopieren
- Dateien nach Wunsch bearbeiten
- Nach einem Theme-Update bleiben alle Änderungen, die im Child-Theme gemacht wurden, erhalten
Für mich eine tolle Lösung und sicher auch für alle anderen, die sich nicht mit dem Erstellen und Hochladen von angepassten Dateien auf dem FTP-Server herumärgern wollen und die sofort eine fertige Lösung haben möchten.