Child Theme in WordPress: Wozu ist das gut?

Wozu ist ein Child Theme in WordPress gut? Ich habe das nie für so notwendig erachtet. Und nun nutze ich eins. Ich erzähle euch auch, wie ich das gemacht habe. Aber es geht eben auch darum, mal zu beleuchten, was es denn mit diesen „Kinder-Layouts“ auf sich hat. Nein, mit Spielzeug hat das nichts zu tun. Es gibt dafür ganz praktische Anwendungsszenarien.

Was sind denn eigentlich Child Themes?

Man spricht immer von „Parent“ (Eltern) und Child (also Kind). Letzteres steht in direkter Abhängigkeit zu ersterem. So müssen wir uns das auch bei einem Child Theme vorstellen. Und wie das üblicherweise bei Kindern ist: Sie erben von den Eltern und bringen ihre eigenen Eigenschaften mit. Und so ist das auch bei diesem Thema. Die Child Themes erben quasi alles vom jeweiligen Parent Theme.

Das Parent Theme ist dabei das, was wir aus der jeweiligen Quelle haben, also dem WordPress Repository oder bei Premium-Themes von den jeweiligen Entwicklern. Die Child Themes aber bauen wir uns selbst. Ich habe das bisher bleiben lassen. Aber ich glaube, so schwierig ist es gar nicht. Jedenfalls einfacher als gedacht.

Warum wir unbedingt auf Child Themes setzen sollten? Ganz einfach: Oft ist es so, dass wir Anpassungen am Code des Themes vornehmen müssen, weil etwa eine Funktion fehlt. Irgendwann kommt ein Update für das Theme. Und was passiert? Alle Anpassungen sind weg. Und deshalb brauchen wir eine Möglichkeit, unsere Anpassungen zu behalten. Und deshalb eben die Child Themes.

Wieso mache ich damit herum?

Ich hatte bisher immer einen Bogen um Child Themes gemacht. Wenn ich mal Anpassungen am Code vorgenommen hatte, hatte ich die vorher in eine Textdatei geworfen und die Datei gespeichert. Kam dann ein Update für das Theme, hatte ich danach meine Codeschnipsel wieder eingefügt. Ja, irgendwann gab es mal die Toolbox. Aber das ist lange her.

So hatte ich mal einen Codeschnipsel für die Bildunterschriften oben am Artikelbild. Diese Unterschrift wird ja normalerweise nicht angezeigt, warum auch immer. Irgendwann war meine Anpassung überholt, und ich musste mir etwas neues einfallen lassen. Mir kam das Plugin „FSM Custom Featured Image Caption“ gelegen. Aber schaut mal, wie lang das schon nicht aktualisiert wurde.

Also habe ich eine neue Möglichkeit gesucht. Mir kam dabei der Thomas Kujawa vom Familienfreund zu Hilfe. Er hat sich aus dieser Funktion etwas gebastelt. Das muss in die Datei functions.php. Dummerweise gehört die zum jeweilige Theme. Kommt da ein Update, ist das Alles weg. Deshalb riet mir der Thomas zu einem Child Theme. Das habe ich nun im Einsatz.

Wie geht das nun mit einem Child Theme?

Ich nutze ja die Premium-Version des Themes „Treville“ von ThemeZee. Dummerweise gibt es auch dort nirgendwo die Möglichkeit, die Bildunterschrift im Artikelbild einzublenden. Deshalb brauchte ich die Funktion. Und so kam ich auf Child Themes. OK, eins reicht.

Ich habe also ein neues Verzeichnis erstellt und das Ganze „treville_child“ genannt. Dort brauchen wir als erstes eine style.css. Und in die habe ich an sich nur das rein geschrieben:

/*
Theme Name: Child Treville
Description: Child-Anpassungen für Treville von ThemeZee
Author: Henning Uhle (Anpassungen), ThemeZee (Original-Ersteller)
Author URI: https://www.henning-uhle.eu
Template: treville
Version: 1.0
Tags:
*/
Die Einträge in der style.css der Child Themes werden korrekt angezeigt (Klick zum Vergrößern)

Wichtig ist, dass das Template genauso heißt wie das Parent Theme, also „treville“. Es muss exakt der Ordnername sein. Und in unserem Verzeichnis „treville_child“ brauchen wir noch Funktionen, also bauen wir uns noch eine functions.php. In die kommt laut Eric-Oliver Mächler hinein:

<?php
 
/**
* child theme stylesheet, loading first the parent theme stylesheet.
*/
 
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
 
}

Beide Dateien speichern wir uns dann im „treville_child“. Wenn wir wollen, machen wir noch einen Screenshot, damit wir das Ganze dann in WordPress wiederfinden. Und dann wird „treville_child“ per FTP in WordPress-Installation/wp-content/themes hochgeladen.

Ja, und dann?

Ach, wir müssen ja noch unseren Codeschnipsel für Bildunterschrift in die functions.php kopieren. Wozu machen wir denn sonst mit Child Themes rum? Gesagt, getan. Was war bei mir das Resultat? Eine Fehlermeldung, dass die Funktion bereits geladen ist. Ich kam nicht gleich drauf. Aber bei der Annika fiel es mir plötzlich auf.

Erinnert ihr euch, was ich oben schrieb? Die Kinder erben alles von den Eltern und bringen eigene Eigenschaften mit. So ist das – wie gesagt – auch bei Child Themes. Die erben alle Funktionen und Eigenschaften der Parent Themes. Wenn also in „treville“ die Funktion bereits geladen ist, kann sie in „treville_child“ nicht mehr geladen werden. Deshalb der Fehler.

Ich habe also den Codeschnipsel von Thomas Kujawa aus dem Original-Theme entfernt, sodass er nur noch im „treville_child“ vorhanden ist. Und genau das funktioniert. Und so ist das dann jedes Mal, wenn ich eine Anpassung vornehme: Einfach in die jeweilige Datei im Child Theme, dann bleibt das auch erhalten.

Aber wie gesagt: Vorsicht! Legt euch gleichlautende Dateien in euren Child Themes nur dann an, wenn ihr in der jeweiligen Datei eine Änderung vornehmt. Und schreibt nur diese Änderung in eure neue Datei. Und tut euch einen Gefallen und testet, was ihr da gebaut habt. Dinge wie XAMPP bieten sich dafür an.

Wie macht ihr das denn mit den Anpassungen? Nutzt ihr Child Themes? Habt ihr auch erst einen großen Bogen darum gemacht? Welche Erfahrungen habt ihr überhaupt gemacht? Erzählt es mir einfach.

3 Replies to “Child Theme in WordPress: Wozu ist das gut?”

  1. Für die Themes, die ich länger einsetze (heißt bei mir ein paar Monate) habe ich grundsätzlich ein Child-Theme installiert. Die Vorteile sind einfach überzeugend. Spätestens, wenn ein Update des Themes ansteht, weiß man warum.

  2. Vielen Dank für diesen ausführlichen Artikel, ich konnte deinem Blog schon einige Infos + Tipps entnehmen, die ich hoffentlich beherzigen + im Hinterkopf halten werde, wenn ich über die Weihnachtsfeiertage mit meinem Blog beginne.

    Solche informativen und strukturierten Artikel findet man selten im Netz, gerade für Neustarter/Anfänger sehr wichtig, damit es direkt gut funktioniert – mit dem neuen Blog.

    Ich werde hier weiter lesen und mich aktuell auf dem Laufenden halten, schon mal vorab Schöne erholsame Feiertage und ein geruhsames ruhiges Fest, ich lese dich auch 2020, vielleicht gucke ich mal deine Kommentare durch und finde noch neuen Lesestoff ❤️️!

    Lieben Gruß Heike

    1. Hallo Heike,

      das freut mich. Ich versuche ja immer, anderen weiterzuhelfen, was das Bloggen betrifft. Ich habe ja auch über die vielen Jahre immer wieder etwas dazu gelernt. Warum sollen das andere nicht auch?

      Wenn du magst und einen RSS Feed Reader hast, pack dir doch entweder meinen ganzen Blog oder nur die Rubrik „WordPress und Bloggen“ dort rein. Ich will mich nicht anpreisen wie Sauerbier. Aber warum sollte man das nicht machen?

      Viele Grüße und dir auch schöne Feiertage.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert