Child Themes

24. Februar 2018 H.Keller 0 Kommentare

Sollen Änderungen am Design vorgenommen werden, hat man in WordPress verschiedene Möglichkeiten. So kann man sein eigenes Theme komplett selbst erstellen, was sicher die aufwändigste Variante ist. Viel einfacher ist es aber, ein vorhandenes Theme anzupassen. Damit die eigenen Änderungen aber nicht bei jedem Update des verwendeten Themes verloren gehen, gibt es in WordPress die Möglichkeit der Childthemes.

Ein Childtheme anlegen

Um ein Childtheme anzulegen wird ein FTP-Zugang zur WordPress-Installation benötigt.  Als erstes muss dazu im Theme-Ordner ein neues Verzeichnis angelegt werden, in dem eine Datei style.css angelegt wird.

Diese enthält eine von WordPress lesbare Themebeschreibung als CSS-Kommentar und könnte wie folgt aussehen.

/*
Theme Name: Name des Childthemes
Description: Eine kurze Theme-Beschreibung
Author: Name der Autors
Author URI: http://deine_URL
Template: Verzeichnisname des Parentthemes
Version: 1.0
Tags:
*/

Als zweites wird eine eigene functions.php im Themeordner benötigt. Diese stellt dann die eigentliche Verbindung zum Parenttheme her. Die Stylesheet-Datei des Childthemes muss hier so eingebunden werden, dass sie nach der CSS-Datei des Parentthemes aufgerufen  wird. Das könnte wie folgt aussehen.

function child_styles() {
   wp_deregister_style( 'parent-style');
   wp_register_style('parent-style', get_template_directory_uri(). '/style.css');
   wp_enqueue_style('parent-style', get_template_directory_uri(). '/style.css');
   wp_enqueue_style('childtheme-style', get_stylesheet_directory_uri().'/style.css', array('parent-style') );
}
add_action( 'wp_enqueue_scripts', 'child_styles' );

parent-style ist hier der im Parenttheme registrierte Stylesheet-Name. Er ist dort in der functions.php als Argument eines wp_enqueue_style-Funktionsaufrufes zu finden.

Das war’s dann schon an Voraussetzungen. Das neue Childtheme sollte jetzt in der Themevorschau sichtbar sein und kann aktiviert werden.

Um nun das Design und Verhalten des Themes anzupassen, braucht nur die entsprechende Template-Datei aus dem Parent- in das Childthemeverzeichnis kopiert und bearbeitet zu werden. WordPress nimmt immer die jeweilige Datei aus dem Childthemeordner, ausgenommen natürlich der style.css. Hier werden durch das obige Script beide Stylesheets geladen.