Seit der WordPress-Version 3.0 gibt es die Möglichkeit sogenannte Child Themes (Kind-Themes) anzulegen. Child Themes sind besonders praktisch, wenn man ein spezielles Theme nach seinen eigenen Bedürfnissen anpassen möchte oder um auf der Basis eines Theme-Frameworks (eines der bekanntesten WordPress-Frameworks ist z.B. Thematic) ein eigenes Theme zu erstellen. Wichtig ist die Nutzung der Child Theme-Option, da so bei einem Update des Parent Themes (Eltern-Themes) die eigenen Anpassungen nicht verloren gehen können. Ein eigenes Child Theme anzulegen ist eigentlich überhaupt nicht kompliziert, ich erkläre kurz wie es funktioniert.

1. Ein Child Theme anlegen

Um ein Child Theme anzulegen, erstellst du dir zuerst einen neuen Ordner mit dem Namen deines Child-Themes (z.B. yoko-child). Deinen Child Theme-Ordner legst du, genau wie alle anderen Themes, im Verzeichnes …wp-content/themes ab. (Das Parent Theme, auf dessen Vorlage du dein Child Theme aufbauen möchtest, muss natürlich ebenfalls im Themes-Ordner vorhanden sein.)

In deinem neuen Child Theme-Ordner legst du jetzt eine neue style.css Datei an. Ganz oben in der style.css Datei musst du folgende Informationen über dein Child Theme angeben:

[php]
/*
Theme Name: Yoko Child
Theme URI: http: //deinedomain.de/
Description: Child Theme for the Yoko theme
Author: Dein Name
Author URI: http: //deinedomain.de/
Template: yoko
Version: 1.0
*/
[/php]

Die wichtigste Information ist hierbei der Punkt Template. Hier musst du den Name des Parent Themes eintragen. Wenn du jetzt in deinem Adminbereich unter Design den Punkt Themes aufrufst, wird dein Child Themes bereits angezeigt und du kannst es aktivieren.

WordPress Child Themes
Im Adminbereich unter Themes kannst du dein Child Theme jetzt aktivieren.

2. CSS-Anpassungen

Sobald du dein Child Theme aktiviert hast, gilt die neu angelegte style.css Datei eines Child Themes. Da diese ja im Augenblick noch komplett leer ist, werden noch keine CSS-Styles in deinem Child Theme angezeigt.

Möchtest du lediglich einige CSS-Styles des Parent Themes überschreiben bzw. umschreiben, kannst du die style.css Datei des Parent Themes entweder über @import url direkt unterhalb der Child Theme Info aufrufen:

[php]
@import url("../yoko/style.css");
[/php]

Oder du kopiert die Styles des Parent Themes und fügst diese in deiner neuen style.css Datei ein. So kannst du jetzt leicht Änderungen an den CSS-Eigenschaften vornehmen, ohne dass diese bei einem Update des Parent Themes überschrieben werden. Nutzt du die “@import url”-Möglichkeit, musst du manche Styles eventuell mit “important” markieren, damit du die Styles überschreiben kannst.

[php]
#content .post {
color: #999 !important;
}
[/php]

3. Weitere Theme-Dateien anpassen

Neben dem Stylesheet können auch die Template-Dateien wie index.php, header.php, footer.php im Child Theme quasi überschrieben werden. Wenn du eine Template-Datei des Parent Themes anpassen möchtest, kopiert du diese einfach mit dem gleichen Namen in dein Child Theme und änderst die Datei nach deinen Wünschen.

Außerdem kannst du auch zusätzliche Template-Dateien einfügen. Wenn du für dein Child Theme z.B. eine eigene Homeseite nutzen möchtest, legst du einfach eine neue Template-Datei namens home.php in deinem Child Theme an. Beim Anlegen der Homeseite im Adminbereich, kannst du dann das Home-Template für diese Seite auswählen.

4. Anpassungen der functions.php

Eine Besonderheit bei Child Themes ist die Handhabung der functions.php Datei. Diese wird nicht wie z.B. die style.css Datei automatisch in einem Child Theme überschrieben. Wenn du eine eigene functions.php Datei für dein Child Theme anlegst, werden die Inhalte hier zusätzlich zu den Inhalten der functions.php Datei des Parent Themes aufgerufen oder besser gesagt direkt vor den Inhalten der functions.php Datei des Parent Themes. Auf diese Weise kannst du mit Hilfe der Child Theme Option zusätzliche PHP-Funktionen zu einem Theme hinzufügen, und wieder ohne dass diese bei einem Update des Parent Themes verloren gehen.

Weiterführende Infos zur Bearbeitung von PHP-Funktionen in der functions.php Datei eines Child Themes beschreibt Ian Stewart auf seinem Blog Themeshaper in den Artikeln “Using Filter Hooks in WordPress child Themes” und “Using Action Hooks in WordPress Child Themes” ausführlich. Auch Frank Bültge bespricht die Anpassung der functions.php Datei in seinem Artikel “WordPress Child Themes verstehen”.

Mein Fazit

Ein Child Theme bietet also wirklich jede Menge Möglichkeiten. Zum einen kann man die Child Theme-Option nutzen, um eigene Anpassungen eines Themes sicher anzulegen, ohne dass diese bei einem Update verloren gehen bzw. überschrieben werden.

Außerdem können Theme-Designer mit Hilfe von Child Themes natürlich auch ganz eigene Themes entwickeln. Hier kommen als Parent Themes vor allem sogenannte Theme Frameworks in Frage, da diese meist extra für die Child Theme-Option vorbereitet bzw. konzipiert sind. Die Nutzung eines Theme-Frameworks als Parent Theme hat den Vorteil, dass man als sich Theme-Designer mehr auf das Theme-Design und weniger um die Programmierung (z.B. eine Theme-Optionsseite, individuelle Widgets etc.) konzentrieren kann. Allerdings macht man sich auch etwas von der Weiterentwicklung des Parent Themes abhängig und viele WordPress Theme-Frameworks sind zumindest meiner Ansicht etwas zu kompliziert und es bedarf einiger Einarbeitung in die Struktur des jeweiligen Frameworks. Daher bauen die meisten Theme-Designer, die mit Frameworks arbeiten ihre Child Themes immer wieder auf dem gleichen Framework auf.

Hilfreiche Artikel über WordPress Child Themes

Folgende Artikel sind weitere wichtige Ressourcen zum Thema:

Wie sind deine Erfahrungen bei der Arbeit mit Child Themes in WordPress? Hast du noch weitere, wichtige Anmerkungen, Fragen oder Ergänzungen zu diesem Thema? Über dein Feedback freue ich mich sehr!