⚡ Child Theme in 3 Schritten
- Neuen Ordner in /wp-content/themes/ erstellen
- style.css mit Theme-Header anlegen
- functions.php zum Einbinden der Parent-Styles
Was ist ein Child Theme?
Ein Child Theme ist eine "Erweiterung" deines Haupt-Themes (Parent Theme). Es erbt alle Funktionen und Styles des Parent Themes, lässt dich aber eigene Anpassungen vornehmen – die bei Theme-Updates NICHT überschrieben werden.
Warum du ein Child Theme brauchst:
- Update-sicher – Deine Änderungen bleiben nach Theme-Updates erhalten
- Saubere Trennung – Original-Theme bleibt unverändert
- Einfaches Debugging – Probleme leichter identifizieren
- Best Practice – Professionelle WordPress-Entwicklung
Beim nächsten Update sind alle Änderungen weg. Nutze immer ein Child Theme für Anpassungen.
Was du brauchst
- FTP-Zugang oder Dateimanager im Hosting-Panel
- Text-Editor (VS Code, Notepad++)
- Grundkenntnisse in CSS (für Style-Änderungen)
Child Theme erstellen: Schritt für Schritt
Ordner erstellen
Erstelle einen neuen Ordner in /wp-content/themes/. Benenne ihn nach dem Parent Theme mit "-child" am Ende:
/wp-content/themes/astra-child/
Wenn dein Parent Theme "Astra" heißt, nenne den Ordner "astra-child".
style.css erstellen
Erstelle eine Datei style.css im Child-Theme-Ordner mit folgendem Inhalt:
/*
Theme Name: Astra Child
Theme URI: https://deinedomain.de
Description: Child Theme für Astra
Author: Dein Name
Author URI: https://deinedomain.de
Template: astra
Version: 1.0.0
*/
/* Deine eigenen CSS-Styles hier */
Wichtig: "Template" muss exakt dem Ordnernamen des Parent Themes entsprechen (kleingeschrieben)!
functions.php erstellen
Erstelle eine Datei functions.php um die Parent-Styles einzubinden:
<?php
// Parent Theme Styles einbinden
function child_theme_enqueue_styles() {
wp_enqueue_style('parent-style',
get_template_directory_uri() . '/style.css'
);
wp_enqueue_style('child-style',
get_stylesheet_directory_uri() . '/style.css',
array('parent-style')
);
}
add_action('wp_enqueue_scripts', 'child_theme_enqueue_styles');
?>
Child Theme aktivieren
Gehe zu Design → Themes. Du siehst jetzt dein Child Theme. Klicke auf "Aktivieren".
CSS-Anpassungen im Child Theme
Jetzt kannst du in der style.css deines Child Themes eigene Styles hinzufügen:
/* Überschrift-Farbe ändern */
h1, h2, h3 {
color: #0073aa;
}
/* Button-Style anpassen */
.button, button {
background: linear-gradient(135deg, #0073aa, #00a0d2);
border-radius: 8px;
}
/* Header-Hintergrund */
.site-header {
background-color: #1a1a1a;
}
Nutze die Browser-Entwicklertools (F12) → Inspektor um herauszufinden, welche CSS-Klassen du überschreiben musst.
Template-Dateien überschreiben
Du kannst auch PHP-Templates des Parent Themes überschreiben. Kopiere einfach die Datei aus dem Parent Theme in dein Child Theme und bearbeite sie dort.
Beispiel: header.php anpassen
- Kopiere
/wp-content/themes/astra/header.php - Füge sie ein in
/wp-content/themes/astra-child/header.php - Bearbeite die Kopie nach deinen Wünschen
WordPress nutzt automatisch die Datei aus dem Child Theme statt dem Parent.
Funktionen hinzufügen
In der functions.php kannst du eigene Funktionen hinzufügen:
// Eigene Widget-Area registrieren
function child_theme_widgets_init() {
register_sidebar(array(
'name' => 'Eigene Sidebar',
'id' => 'custom-sidebar',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
));
}
add_action('widgets_init', 'child_theme_widgets_init');
// Excerpt-Länge ändern
function child_theme_excerpt_length($length) {
return 25; // Wörter
}
add_filter('excerpt_length', 'child_theme_excerpt_length');
// Eigenes JavaScript einbinden
function child_theme_scripts() {
wp_enqueue_script('custom-js',
get_stylesheet_directory_uri() . '/js/custom.js',
array('jquery'),
'1.0',
true
);
}
add_action('wp_enqueue_scripts', 'child_theme_scripts');
Best Practices für Child Themes
- Minimale Änderungen – Überschreibe nur was nötig ist
- Kommentiere deinen Code – Du wirst später froh sein
- Versioniere – Nutze Git für größere Änderungen
- Teste nach Parent-Updates – Manchmal ändern sich Klassen oder Funktionen
☑️ Ordner erstellt mit korrektem Namen
☑️ style.css mit vollständigem Header
☑️ Template-Wert stimmt mit Parent-Ordner überein
☑️ functions.php bindet Parent-Styles ein
☑️ Child Theme aktiviert und getestet