Sobald ein Theme in WordPress geupdated wird, werden alle Änderungen, die daran durchgeführt wurden, vom Update überschrieben. Um das zu verhindern, könnt ihr ein sogenanntes Child Theme erstellen.
Was ist ein Child Theme?
Ein Child Theme erbt grundsätzlich alle Eigenschaften des Parent Themes. Wenn im Child Theme andere Eigenschaften (beispielsweise CSS-Einstellungen oder PHP-Funktionen) festgelegt werden, haben diese Vorrang vor dem Parent Theme und überschreiben die vom Parent Theme übernommenen Einstellungen.
Updates am Parent Theme können so jederzeit eingespielt werden, während die benutzerdefinierten Änderungen am Child Theme nicht überschrieben werden und weiterhin bestehen bleiben.
Child Theme erstellen
Um ein Child Theme zu erstellen, benötigt ihr einen separaten Ordner auf dem Dateisystem innerhalb eurer WordPress Installation. Das könnt ihr entweder über einen FTP-Client (beispielsweiße FileZilla) vornehmen oder ihr verwendet die Konsole. Ich zeuge euch hier den Weg über die Konsole:
Verbindet euch per ssh auf euren Server:
ssh user@hostname
Navigiert innerhalb eurer WordPressinstallation in den Ordner „wp-content/themes/“
cd wordpressinstallation/wp-content/themes
Erstellt dort einen neuen Ordner:
mkdir my_childtheme && cd my_childtheme
Legt dort eine Datei names „functions.php“ an und fügt den folgenden PHP-Code ein:
vi functions.php
<?php
add_action( 'wp_enqueue_scripts', 'child_theme_styles' );
function child_theme_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-theme-css', get_stylesheet_directory_uri() .'/style.css' , array('parent-style'));
}
?>
Anschließend legt ihr euch noch die Datei „style.css“ an und fügt den CSS-Code ein (tauscht ihn gegen eure Daten aus):
vi style.css
/*
https://www.pascalxander.com
Theme Name: My Child Theme
Description: My Child Theme
Theme Author: Pascal Xander
Author URL:
Template: My Theme
Version: 1.0.0
Text Domain: my-child-theme
*/
Beim „Template“ muss der Name des Parent Themes hinterlegt werden.
Das ist alles, was ihr benötigt. Anschließend taucht das Child Theme im WordPress Backend unter „Design“ > „Themes“ auf und ihr könnt es als Theme festlegen.
Innerhalb des angelegten style.css Files könnt ihr jetzt eure gewünschten Änderungen durchführen, die dann auch bei Theme Updates nicht überschrieben werden.