WordPress Child Theme anlegen

6 April 2023

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