Warum sollte man mit Child Themes arbeiten? Wenn man Code Änderungen macht, sind diese bei einem Update des Master Themes verloren – vielleicht sogar, ohne das man es sofort merkt. Ein Update des Masters verändert aber keine Child Theme – ist aber auf einmal mit der Anpassung im Child nicht mehr kompatibel?
Auch hat man im Fehlerfalle immer die Möglichkeit, wieder zum Master zurückzukehren.
Im Netz findet man verschiedene Anleitungen dazu. Leider habe ich die Erfahrung gemacht, dass nicht alles funktioniert! Veraltet? Nur bei gewissen Theme möglich?
Hier erkläre ich mal, wie es bei mir letzlich funktionert hat!
Von https://wphelp.de/wordpress-child-theme-erstellen
Logge dich auf deinem WP Server ein. (z.B. mit Putty)
cd www/<your directory>/wp-content/themes
mkdir <your native theme>_child
cd <your native theme>_child
vi style.css
/*
Theme Name: <source theme> Child
Theme URI: http://www.<your domain>.de
Description: Mein Child Theme
Author: Nikolaus Author
Template: <source theme>
Version: 1.0
*/
/* =Ab hier kannst du deine CSS-Anpassungen eintragen */
:x
vi functions.php
<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
:x
Zur besseren Erkennung kann eine 1.200 x 900 Pixel (!) große PNG-Datei angelegt werden und mit der Bezeichnung screenshot.png
in den Child Theme Ordner gespeichert werden.
Beispiel für eine Änderung vom Original Theme im Child Theme, hier am Theme twentyfifteen mit dem Ziel, den Text „Proudly powered by“ zu entfernen und durch einen Link zu ersetzen.
cd <your wp root>/wp-content/themes/twentyfifteen-child
cp ../twentyfifteen/footer.php .
cp -p footer.php footer.php_ori # make a backup!
vi footer.php # do the required changes, details see below
Result:
diff footer.php footer.php_ori
30c30
< <a href="<?php echo esc_url( __( 'https://www.mydomain.de/impressum/', 'twentyfifteen' ) ); ?>" class="imprint">
---
> <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>" class="imprint">
33c33
< printf( __( 'Our %s', 'twentyfifteen' ), 'Impressum' );
---
> printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' );