Einfache Design-Anpassungen an WordPress Themes sind schnell und einfach erledigt. In der Regel genügt es, die betreffende Stelle im Stylesheet zu ändern und schon ist das Design angepasst. Allerdings werden sämtliche Änderungen beim nächsten Update des Themes überschrieben.

Mit Child Themen kannst du das vermeiden. So gehts:

Prüfen welches Theme aktiviert ist.

Dazu gehen wir einfach in die Einstellungen und sehen nach:

Child anlegen

durch erstellen eines neuen Unterverzeichnisses:

Style.css im Child anlegen

/*
 Theme Name:   Ashe Premium Child
 Description:  Mein Child Theme
 Template:     ashe-pro-premium
 Version:      1.0
 Text Domain:  ashe-pro-premium-child
*/

Wichtig ist hier: Die Namen müssen sich auf das Parent Template beziehe, da Wordpress sonst nicht das Template als Child erkennt. Es zählt also nicht der Verzeichnisname sondern die Daten hier im style.css

 functions.php erstellen

<?php

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'));

}
add_action( 'wp_enqueue_scripts', 'child_theme_styles' );?>

Child aktivieren

Screenshot

screenshot.png im Verzeichnis hinterlegen dann wird kein leerer Platzhalter angezeigt.. mir ist das jetzt nicht wichtig.

functions.php ergänzen

jetzt kannst du dir zB zusenden lassen wer sich wann einloggt und das bleibt dann auch bei einem Theme Update erhalten:

function login_failed_mail() {

        $username = sanitize_text_field($_POST['log']);
        $ip = $_SERVER['REMOTE_ADDR'];

        $headers = array('Content-Type: text/html; charset=UTF-8');
        wp_mail("du@gmail.com", "Neue Login Fehler auf Wordpress", "Login Fehler von '".$username."' and ".$ip, $headers);
}

function login_ok_mail() {
        $headers = array('Content-Type: text/html; charset=UTF-8');
        wp_mail("du@gmail.com", "Neue Login auf Wordpress", "Login OK", $headers);
}

add_action('wp_login_failed', 'login_failed_mail');
add_action('wp_login', 'login_ok_mail');

Allerdings muss für den Code noch das https://de.wordpress.org/plugins/wp-mail-smtp/ installiert und konfiguriert sein

Warum überhaupt ein Child-Theme?

Ändert man Stylesheet oder Funktionen direkt im aktiven Theme, sind alle Anpassungen beim nächsten Theme-Update wieder weg. Ein Child-Theme löst das: Es erbt Aussehen und Funktionen des Eltern-Themes, nimmt aber Ihre Änderungen auf – update-sicher und sauber getrennt.

Wann lohnt sich ein Child-Theme?

  • Sobald Sie mehr als nur eine winzige CSS-Kleinigkeit ändern.
  • Wenn Sie Template-Dateien (z. B. header.php) anpassen wollen.
  • Wenn Sie eigene Funktionen über die functions.php ergänzen.

Für eine einzelne CSS-Zeile reicht oft auch der Customizer („Zusätzliches CSS") – ab mehreren Änderungen ist ein Child-Theme die bessere Wahl.

Die drei Grundbausteine

  1. Eigenes Verzeichnis unter /wp-content/themes/ anlegen.
  2. style.css mit korrektem Template:-Eintrag, der exakt den Verzeichnisnamen des Eltern-Themes nennt – sonst erkennt WordPress die Verbindung nicht.
  3. functions.php, die das Eltern-Stylesheet per wp_enqueue_style einbindet.

Häufige Stolpersteine

  • Falscher Template-Name: Maßgeblich ist nicht der Verzeichnisname, sondern der Template:-Wert in der style.css.
  • Styles laden nicht: Das Eltern-Stylesheet muss korrekt enqueued werden, bevor das Child-Stylesheet greift.
  • Leerer Vorschau-Platzhalter: Eine screenshot.png im Verzeichnis sorgt für eine hübsche Theme-Vorschau (optional).

Der Vorteil zusammengefasst

Mit einem Child-Theme bleiben Ihre Anpassungen – egal ob CSS, Templates oder eigene Funktionen – bei jedem Update des Eltern-Themes erhalten. Genau dafür ist es gemacht.