Child-Themes in WordPress am Beispiel von Suffusion

Ein Grund für den Erfolg von WordPress ist sicherlich die Verfügbarkeit von vielen Themes. Nur ist es ab und zu nötig individuelle Anpassungen am Code vorzunehmen. Das Problem: Nach einem Update des Themes würden diese Anpassungen überschrieben werden. Wie man das mit Hilfe von so genannten Child-Themes verhindern kann, wird am Beispiel des Themes Suffusion beschrieben.

Leider viel zu oft liest man von gehackten WordPress Systemen, bei denen ein Angreifer über eine bekannte Sicherheitslücke das System kompromittiert hat. Viele dieser Angriffe hätten vermieden werden können, wenn der Webmaster die verfügbaren Sicherheitsupdates eingespielt hätte. Das ist diesem aber oft zu mühsam, da nach dem Einspielen des Updates alle individuellen Anpassungen verloren gehen würden.

WordPress liefert mit den so genannten Child-Themes eine Lösung für dieses Problem.

Vereinfacht ausgedrückt wird bei einem Child-Theme eine Kopie des Themes in einem neuen Verzeichnis abgelegt, welche nur die individuellen Theme-Anpassungen beinhaltet. Dieses Verzeichnis mit den individuellen Anpassungen wird bei einem Update des eigentlichen Themes nicht beeinträchtigt. Somit muss der Webmaster keine Angst haben, dass nach dem Einspielen eines Theme-Updates seine Änderungen überschrieben worden sind.

Am Beispiel des frei verfügbaren WordPress Themes Suffusion möchten wir in diesem Beitrag zeigen, wie man ein solches Child Theme anlegt:

Child-Theme erstellen

Zunächst wird im Verzeichnis /wp-content/themes ein neues Verzeichnis mit der Endung „-child“ erstellt. In diesem Beispiel nennen wir es: „/wp-content/themes/suffusion-child

In dieses neu angelegte Verzeichnis kopieren wir eine style.css an. Darin enthalten ist der Pfad zur originalen style.css des Haupt-Themes, sowie dessen Namen.

/*
* Theme Name: suffusion-child
* Template: suffusion
* Description: Suffusion Child Theme
* Theme URI: your-url.tld
* Version: 0.0.1
* Author: Name
* Author URI: your-url.tld/blog
*/

@import url("../suffusion/style.css");

Alle CSS-Anpassungen werden von nun an dieser style.css des Child-Themes vorgenommen.

Kommen wir zur ersten individuellen Anpassung:

Statistik-Code in der Datei footer.php einfügen

Angenommen, wir möchten ein Statistik-Tool wie Piwik oder Google Analytics nutzen. Diese Tools verlangen, dass man einen bestimmten Code in die footer.php des Themes schreibt.

Um diese Anpassungen jetzt vornehmen zu können, kopieren wir zunächst die original footer.php des Themes in das Child-Theme Verzeichnis. Anschließend können die gewünschten Änderungen an der Datei /wp-content/themes/suffusion-child/footer.php vorgenommen werden.

Kommt nun ein Besucher auf die Webseite, wird nicht die original footer.php geladen, sondern die aus dem Child-Theme Verzeichnis.

Sprachpakete im Child-Theme einbinden

Ein Problem bei einigen Themes ist, dass eingebundene Sprachpakete nach einem Update wieder eingefügt werden müssen. Auch diese kann man aber dauerhaft in das Child Theme einbinden. Hierzu wird innerhalb des Child-Themes ein Verzeichnis „/translation“ erstellt.

Darin enthalten müssen die entsprechenden Sprachpakete sein. zum Beispiel:

de_DE.mo
de_DE.po
suffusion.po

Nun muss aber WordPress diese Sprachpakete auch erkennen. Normalerweise werden die Sprachpakete in der functions.php definiert.

Um bei Suffusion die Sprachpakete auch im Child-Theme zu aktivieren, muss im Child-Verzeichnis eine Datei function.php mit folgendem Inhalt angelegt werden:

<?php

$suffusion_locale = get_locale();

load_textdomain('suffusion-child',
locate_template(array("translation/{$suffusion_locale}.mo",
"{$suffusion_locale}.mo")));

?>

Nach diesen Anpassungen sieht der Verzeichnisbaum in diesem Fall so aus:

wp-content/themes/suffusion/
wp-content/themes/suffusion-child/style.css
wp-content/themes/suffusion-child/footer.php
wp-content/themes/suffusion-child/functions.php
wp-content/themes/suffusion-child/translation/
wp-content/themes/suffusion-child/translation/de_DE.mo
wp-content/themes/suffusion-child/translation/de_DE.po
wp-content/themes/suffusion-child/translation/suffusion.po

Fazit

Child Themes geben dem WordPress Webmaster die Möglichkeit ein Theme individuell nach seinen Bedürfnissen anzupassen und trotzdem von den Updates zu profitieren. Wir möchten allen Webmastern dazu ermutigen, soweit möglich auf Child-Themes zu setzen.

Sollten Sie dabei Fragen haben, setzen Sie sich mit unserem Support in Verbindung. Wir freuen uns auf Ihre Anfrage.

Related Posts

Leave a reply