Ein Child Theme ist ein Unter-Theme, das auf einem Parent Theme aufbaut. Du kannst damit CSS, Templates und Funktionen anpassen, ohne dass Updates vom Parent Theme Deine Änderungen überschreiben. Wenn Du die offizielle Definition nachlesen willst, findest Du sie im WordPress Developer Handbook:
WordPress Developer Handbook: Child Themes
Stell Dir Dein WordPress-Theme wie ein Mietauto vor: Du kannst damit super fahren – aber Du solltest nicht anfangen, den Motor umzubauen, wenn Du es nachher wieder zurückgeben musst. Genau das passiert, wenn Du Änderungen direkt im Parent Theme machst: Beim nächsten Update ist alles weg.
Ein Child Theme ist dann wie Dein eigener „Werkzeugkoffer“: Du baust Deine Anpassungen daneben – und Updates können kommen, ohne dass Deine Arbeit überschrieben wird.
Wichtig (damit niemand falsch abbiegt): Die manuelle Anleitung (Schritt 1–3) funktioniert für jedes klassische WordPress-Theme (Astra, Kadence, OceanWP, Twenty Twenty-Themes usw.).
Die Profi-Tipps zeige ich zusätzlich am Beispiel GeneratePress, weil es dort besonders starke Alternativen gibt (Elements/Hooks), die oft sogar ein Child Theme ersetzen.
Inhaltsverzeichnis
- 1 Kurz-Check: Brauchst Du wirklich ein Child Theme?
- 2 Entscheidungstabelle: Child Theme vs Customizer vs Code Snippets vs Theme-Tools
- 3 Child Theme erstellen: Schritt-für-Schritt (für jedes Theme)
- 4 Anpassungen im Child Theme: So machst Du’s richtig
- 5 Bonus: GeneratePress (Beispiel) – wann Child Theme überflüssig ist
- 6 Best Practices (damit Du Dir später selbst dankst)
- 7 Troubleshooting: Häufige Probleme (und schnelle Fixes)
- 8 FAQ (2026): Die häufigsten Fragen zu WordPress Child Themes
- 9 Fazit: Dein bester Weg (je nach Ziel)
- 10 Kurz-Checkliste (für Dein WordPress-Backend)
Kurz-Check: Brauchst Du wirklich ein Child Theme?
✅ Ja, wenn Du…
- PHP-Funktionen dauerhaft hinzufügen willst (Actions/Filter, Shortcodes, Mini-Features).
- Template-Dateien überschreiben willst (z.B.
header.php,single.php– eher Fortgeschritten). - Deine Anpassungen strukturieren willst (mehrere Dateien, CSS/JS sauber trennen).
⚠️ Oft nein, wenn Du…
- nur ein bisschen CSS änderst (dafür reicht meist „Zusätzliches CSS“ im Customizer).
- nur 1–5 kleine Snippets brauchst (da ist ein Snippets-Plugin häufig cleaner).
- ein Theme nutzt, das dir schon „Hooks/Builder/Elements“ bietet (z.B. GeneratePress Premium).
Wenn Du ganz neu in GeneratePress bist, hier ist mein Einsteiger-Guide:
GeneratePress Einsteiger-Guide
Entscheidungstabelle: Child Theme vs Customizer vs Code Snippets vs Theme-Tools
| Ziel | Beste Lösung | Warum? |
|---|---|---|
| Nur CSS anpassen (Farben, Abstände, Schrift) | Customizer / Zusätzliches CSS | schnell, updatefest, ohne Dateien |
| Kleine PHP-Snippets (Shortcodes, Filter, Mini-Features) | Code Snippets Plugin oder mu-plugin | sauberer als „alles in functions.php“ |
| Layout/Hook-Inhalte (Header, Footer, Banner, CTA) | Theme-Tools (z.B. Elements/Hooks/Builder) | flexibel, oft ohne Code |
| Template-Dateien überschreiben | Child Theme | dafür ist es gemacht |
| Größere Individualisierung/Theme-Entwicklung | Child Theme + Staging | professioneller Workflow |
💡 Pro-Tipp: Wenn Du bei GeneratePress bist, nutze lieber Elements/Hooks statt Templates zu kopieren:
GeneratePress Elements/Hooks nutzen statt Template-Dateien kopieren
Child Theme erstellen: Schritt-für-Schritt (für jedes Theme)
Du brauchst Zugriff auf Deine WordPress-Dateien (Hosting-Dateimanager, FTP oder SSH) und einen Texteditor.
Schritt 1: Ordner für das Child Theme anlegen
Pfad: /wp-content/themes/
Beispiel:
- Parent Theme heißt „astra“ → Child-Ordner:
astra-child - Parent Theme heißt „generatepress“ → Child-Ordner:
generatepress-child
Schritt 2: style.css erstellen (Pflicht)
Im Child-Theme-Ordner legst Du eine Datei style.css an:
/*
Theme Name: Mein Child Theme
Theme URI: https://derwebfuchs.de/
Description: Child Theme für mein Parent Theme (Anpassungen 2026)
Author: Der Webfuchs
Author URI: https://derwebfuchs.de/
Template: generatepress /* ODER: astra, oceanwp, kadence, twentytwentyfour, etc. */
Version: 1.0.0
Text Domain: mein-child-theme
*/
✅ Merksatz: Template: = Ordnername des Parent Themes unter /wp-content/themes/.
Wenn Du das falsch setzt, kann WordPress das Child Theme nicht korrekt zuordnen.
Wenn Du GeneratePress nutzt, findest Du das auch nochmal in der GP-Doku (inkl. Blank Child Theme):
GeneratePress Doku: Child Theme nutzen & installieren
Schritt 3: functions.php (optional, aber praktisch)
Lege eine functions.php im Child Theme an.
Viele Themes binden Child-Styles automatisch ein. Wenn nicht, kannst Du es sauber per wp_enqueue_scripts machen. WordPress erklärt die Grundlagen im Handbook:
WordPress Developer Handbook: Child Themes
Robustes Beispiel: Child-Styles nach dem Parent laden (ohne anonyme Funktion)
<?php
/**
* Enqueue Child Styles (robust, 2026)
*/
function derwebfuchs_enqueue_child_styles() {
// Passe diesen Handle ggf. an (je nach Parent Theme).
// Bei GeneratePress ist 'generatepress-style' üblich.
$parent_handle = 'generatepress-style';
wp_enqueue_style(
'derwebfuchs-child-style',
get_stylesheet_uri(),
array( $parent_handle ),
wp_get_theme()->get('Version')
);
}
add_action( 'wp_enqueue_scripts', 'derwebfuchs_enqueue_child_styles', 20 );
⚠️ Fehlerbild #1: „CSS greift nicht / Reihenfolge stimmt nicht“
✅ Checke:
- Cache (Plugin/Server/CDN) leeren
- Wird
style.cssgeladen? (Browser → DevTools → Network → Filter „CSS“) - Stimmt der Parent-Handle?
So prüfst Du den Parent-Handle ohne Programmierwissen:
Öffne die Website → Rechtsklick → „Seitenquelltext anzeigen“ → suche nach .css oder nach dem Theme-Namen (z.B. astra, generatepress). Alternativ: DevTools → „Network“ → CSS-Dateien anklicken und schauen, was geladen wird.
💡 Pro-Tipp: Wenn Du viele Mini-Funktionen brauchst, sind einzelne Snippets oft sauberer als eine wachsende functions.php:
WordPress Snippets als Alternative zur überfüllten functions.php
Schritt 4: Child Theme als ZIP installieren (Anfängerfreundlich)
Du kannst den Child-Theme-Ordner zippen:
- Ordner
…-childzippen →…-child.zip - WordPress: Design → Themes → Hinzufügen → Theme hochladen
- Installieren
- Aktivieren
Wenn Du keine Dateien anfassen willst: Du kannst ein Child Theme auch per Plugin generieren (z.B. „Child Theme Configurator“). Für GeneratePress ist das Blank Child Theme aus der Doku oft der schnellste Weg:
GeneratePress Doku: Child Theme nutzen & installieren
Anpassungen im Child Theme: So machst Du’s richtig
1) CSS anpassen (wirklich CSS 😄)
Wenn Du z.B. Buttons verändern willst, gehört das in die style.css:
/* Beispiel: Buttons runder + mehr Padding */
.button,
.wp-block-button__link {
border-radius: 10px;
padding: 12px 18px;
}
💡 Pro-Tipp: Nur 2–3 Regeln? „Zusätzliches CSS“ im Customizer ist oft schneller. Child Theme lohnt sich, wenn Du CSS langfristig strukturieren willst.
2) PHP-Funktionen hinzufügen (Actions & Filter)
Beispiel: Weiterlesen-Link-Text ändern
Der Filter heißt the_content_more_link (offizielle Hook-Referenz):
Hook: the_content_more_link
<?php
function derwebfuchs_read_more_text( $link ) {
return str_replace( 'Weiterlesen', 'Artikel komplett lesen →', $link );
}
add_filter( 'the_content_more_link', 'derwebfuchs_read_more_text' );
Wenn Du dazu eine GeneratePress-spezifische Anleitung willst:
Weiterlesen-Text in GeneratePress gezielt ändern
⚠️ Fehlerbild #2: „White Screen / Fatal Error nach functions.php“
✅ Sofortmaßnahmen:
- Per FTP/Dateimanager
functions.phpumbenennen (z.B.functions.php.off) - Seite neu laden → läuft wieder
- Snippet korrigieren (Tippfehler, fehlendes
;, falsche PHP-Tags)
Bonus: GeneratePress (Beispiel) – wann Child Theme überflüssig ist
Dieser Abschnitt ist Bonus: Wenn Du nicht GeneratePress nutzt, kannst Du ihn überspringen. Die Child-Theme-Anleitung oben bleibt trotzdem 100% gültig.
GeneratePress ist so aufgebaut, dass Du extrem viel ohne Child Theme lösen kannst – z.B. über Hooks/Elements. Schau Dir dazu die GeneratePress Hooks Overview an.
Hooks nutzen (GeneratePress-Style)
<?php
function derwebfuchs_gp_notice_banner() {
if ( is_single() ) {
echo '<div class="notice-box">💡 Tipp: Sichere Deine Anpassungen mit Child Theme oder Snippets.</div>';
}
}
add_action( 'generate_before_content', 'derwebfuchs_gp_notice_banner' );
CSS dazu:
.notice-box{
padding: 12px 16px;
border-left: 4px solid #000;
background: rgba(0,0,0,0.05);
margin: 0 0 18px 0;
}
💡 Pro-Tipp: Viele Hook-Anpassungen kannst Du bei GeneratePress komplett ohne PHP über Elements lösen:
Hooks/Elements ohne Child Theme nutzen
Und wenn Du GP Premium nutzt, findest Du hier die Einordnung, ob sich der Umstieg lohnt:
GeneratePress Premium/Elements als Alternative zum Child Theme
Best Practices (damit Du Dir später selbst dankst)
✅ Mach’s so:
- Teste Änderungen zuerst auf Staging (wenn möglich).
- Kommentiere Snippets („Warum existiert das?“).
- Halte CSS und Funktionen sauber getrennt.
- Teste nach Updates (WordPress + Theme + Plugins).
⚠️ Bitte nicht so:
- Änderungen im Parent Theme (nach dem Update weg).
@importfür CSS-Imports (alt/fragil – Reihenfolgeprobleme).- Template-Dateien kopieren, obwohl Du nur 2 Zeilen ändern willst.
Troubleshooting: Häufige Probleme (und schnelle Fixes)
Child Theme wird nicht angezeigt
✅ Prüfe:
- Liegt
style.cssim Child-Ordner? - Ist der Header korrekt (
Theme Name,Template)? - Stimmt
Template:exakt mit dem Parent-Ordner überein?
CSS greift nicht
✅ Prüfe:
- Cache leeren (Plugin/Server/CDN)
- Wird
style.cssgeladen? - Reihenfolge/Enqueue stimmt?
FAQ (2026): Die häufigsten Fragen zu WordPress Child Themes
Brauche ich 2026 überhaupt noch ein Child Theme?
Für Template-Overrides und größere Anpassungen: ja. Für CSS und kleine Funktionen reicht oft Customizer + Snippets/Theme-Tools.
Was ist besser: Child Theme oder Code Snippets Plugin?
Für viele kleine Funktionen ist ein Snippets-Plugin oft besser (einzeln aktivierbar, sauber dokumentierbar). Child Theme ist stärker bei Templates + strukturierter Theme-Anpassung.
Kann ich ein Child Theme später wieder entfernen?
Ja. CSS kannst Du oft in den Customizer migrieren, Funktionen in Snippets. Dann Parent aktivieren.
Warum greifen meine Child-Styles nicht?
Meist Cache oder Reihenfolge. Prüfe, ob das Child-Stylesheet geladen wird und nach dem Parent kommt.
Fazit: Dein bester Weg (je nach Ziel)
Wenn Du updatesicher arbeiten willst, ist ein Child Theme ein starkes Werkzeug – aber nicht immer die beste Lösung für jede Mini-Anpassung.
Meine Empfehlung 2026:
- Nur CSS? → Customizer („Zusätzliches CSS“)
- Kleine Funktionen? → Snippets-Plugin
- Theme hat starke Tools (z.B. GP Elements/Hooks)? → nutz die zuerst
- Templates überschreiben / viele Dateien strukturieren? → Child Theme
Next Steps
- Entscheide mit der Tabelle: Child Theme oder Alternative?
- Wenn Child Theme: Ordner +
style.css+ optionalfunctions.php - Auf Staging testen, Cache leeren, dann live
- Mini-Doku führen (was hast Du warum geändert?)
Welche Anpassung willst Du machen (CSS / Funktion / Template)? Schreib’s in die Kommentare – dann sag ich Dir kurz, ob Child Theme wirklich der beste Weg ist.
Kurz-Checkliste (für Dein WordPress-Backend)
- ✅ Child Theme ist aktiv
- ✅
Template:stimmt (Ordnername des Parent Themes) - ✅
style.csswird geladen - ✅ Cache geleert
- ✅ Nach Update getestet

