Skip to content

Alles für WordPress, Webentwicklung — und mehr

🧩 WordPress child theme: eine vollständige anleitung zum erstellen und anpassen

🧩 WordPress child theme: eine vollständige anleitung zum erstellen und anpassen

Sie haben ein Theme installiert, die Website poliert, Farben und Schriften angepasst, ein paar eigene Templates hinzugefügt. Dann kommt ein Theme-Update und löscht alles. Kommt Ihnen das bekannt vor?

Ein Child-Theme in WordPress ist der Mechanismus, der Ihre Anpassungen vom Code des Entwicklers trennt. Sie ändern, was Sie möchten, und das übergeordnete Theme aktualisiert sich ohne Konsequenzen. Das klingt nach Magie, aber dahinter steckt nur eine Zeile in style.css.

In dieser Anleitung, vom Konzept bis zum funktionierenden Child-Theme: warum Sie eines brauchen, wie Sie es manuell erstellen, wie Sie Styles und functions.php einbinden und was zu tun ist, wenn etwas schiefgeht. Ohne Füllmaterial, mit getesteten Code-Snippets.

💡 Kurzer Überblick:

  • Erstellen Sie einen Child-Theme-Ordner in /wp-content/themes/, jeder Name funktioniert, zum Beispiel mytheme-child
  • Fügen Sie style.css mit einem Theme-Header und einer Template:-Zeile hinzu, die auf den Ordner des übergeordneten Themes verweist
  • Binden Sie die Styles des übergeordneten Themes über functions.php ein, indem Sie die Funktion wp_enqueue_style() am Hook wp_enqueue_scripts nutzen
  • Kopieren Sie jede beliebige Template-Datei aus dem übergeordneten Theme in das Child-Theme und bearbeiten Sie sie ohne Angst vor Updates
  • Alles andere (functions.php, benutzerdefinierte Felder, neue Templates) lässt sich erweitern, ohne das übergeordnete Theme anzufassen

Was ein WordPress-Child-Theme ist

Ein Child-Theme ist ein WordPress-Theme, das sämtliche Funktionalität, Styles und Templates von einem anderen Theme erbt. Dasjenige, von dem geerbt wird, heißt übergeordnetes Theme. Ein Child-Theme kann für sich genommen aus nur einer einzigen style.css-Datei bestehen und trotzdem voll funktionsfähig sein.

WordPress-Theme-Code auf einem Bildschirm

Der Vererbungsmechanismus ist einfach. Wenn WordPress eine Seite lädt, sucht es zuerst im Child-Theme nach der benötigten Template-Datei. Wird sie gefunden, verwendet es diese Datei. Wird sie nicht gefunden, nimmt es die Datei aus dem übergeordneten Theme. Deshalb können Sie nur das überschreiben, was Sie ändern möchten, und alles andere kommt automatisch aus dem übergeordneten Theme.

Das entscheidende Element, ohne das ein Child-Theme nicht existieren kann, ist die Template:-Zeile im Header von style.css. Sie verweist auf den Ordnernamen des übergeordneten Themes (zum Beispiel twentytwentyfour) und stellt die Eltern-Kind-Beziehung her. Die Zeile muss exakt mit dem Ordnernamen des übergeordneten Themes übereinstimmen, inklusive Groß- und Kleinschreibung.

Das übergeordnete Theme kann JEDES installierte WordPress-Theme sein, vom Standard-Theme Twenty Twenty-Five bis zu einem kommerziellen Theme wie Total oder Kadence. Das Child-Theme „borgt" sich dessen Dateien und Funktionen, kopiert sie aber nicht physisch.

Warum Sie ein Child-Theme brauchen: 4 Gründe

Sie könnten das alles überspringen und das übergeordnete Theme direkt bearbeiten. Viele tun das. Aber hier ist, was dann passiert.

Sichere Updates

Der Entwickler des übergeordneten Themes veröffentlicht ein Update, und Sie installieren es. Wenn Sie die Dateien des übergeordneten Themes direkt bearbeitet haben, sind alle Änderungen weg. Ein Child-Theme speichert Ihre Anpassungen separat: Ein Update des übergeordneten Themes berührt sie nicht. Sie erhalten sowohl die frische Version des Themes (mit Sicherheitskorrekturen) als auch Ihre erhaltenen Anpassungen.

Isoliertes Experimentieren

Sie möchten eine neue Template-Struktur oder einen unkonventionellen CSS-Hack ausprobieren? In einem Child-Theme können Sie frei experimentieren. Wenn etwas schiefgeht, deaktivieren Sie das Child-Theme, und die Website kehrt zum übergeordneten Theme im Originalzustand zurück.

Saubere Codebasis

Ein Child-Theme enthält nur Ihre Änderungen. Ein paar Templates, functions.php mit Hooks, style.css mit Überschreibungen. Keine Mischung aus Originalcode und Ihren Bearbeitungen. Wenn Sie ein halbes Jahr später etwas reparieren müssen, graben Sie nicht im Code anderer Leute nach Ihrem eigenen.

Schneller Entwicklungsstart

Ein Child-Theme ist die perfekte Sandbox, um die WordPress-Theme-Entwicklung zu lernen. Sie schreiben kein Theme von Grund auf (das dauert Hunderte von Stunden), sondern nehmen gezielte Änderungen an einem bereits funktionierenden Theme vor. Die offizielle WordPress-Dokumentation zu Child-Themes empfiehlt genau diesen Ansatz für angehende Entwickler.

Welche Nachteile Child-Themes haben

Es gibt auch Nachteile. Sie sind nicht kritisch, aber sie im Voraus zu kennen, hilft.

Grundlegende Code-Kenntnisse erforderlich

Das Einrichten eines Child-Themes setzt HTML, CSS und etwas PHP voraus. Wenn Sie noch nie einen Code-Editor geöffnet haben, müssen Sie die Grundlagen lernen. Die gute Nachricht: Für typische Aufgaben (Einbinden von Styles, Hinzufügen eines Hooks) ist der Code bereits geschrieben; Sie kopieren ihn nur und setzen Ihre eigenen Werte ein.

Migration der Customizer-Einstellungen

Manche Themes binden Customizer-Einstellungen (Farben, Schriften, Layout) an den Namen des aktiven Themes. Beim Wechsel zu einem Child-Theme „verschwinden" diese Einstellungen. Sie sind nicht verloren; sie bleiben in der Datenbank, gebunden an den Namen des übergeordneten Themes. Die Lösung: Exportieren Sie die Customizer-Einstellungen, bevor Sie das Child-Theme aktivieren (viele Themes, wie Total, bieten ein eingebautes Import/Export-Tool), oder übertragen Sie sie nach der Aktivierung manuell.

Abhängigkeit vom übergeordneten Theme

Ein Child-Theme ohne sein übergeordnetes Theme ist nur ein Ordner mit Dateien. Wenn Sie sich entscheiden, das Theme komplett zu wechseln, müssen Sie ein neues Child-Theme von Grund auf erstellen. Funktionen, die in der functions.php des Child-Themes eingebettet sind, können an Hooks gebunden sein, die spezifisch für ein bestimmtes übergeordnetes Theme sind, und müssen dann ebenfalls angepasst werden.

Wie Sie ein Child-Theme manuell erstellen

Der direkteste Weg, ohne Plugins, nur mit Ihren Händen. Sie benötigen Zugriff auf die Dateien Ihrer Website (FTP, den Dateimanager Ihres Hostings oder cPanel) und einen Texteditor.

Schritt 1. Child-Theme-Ordner erstellen

Öffnen Sie das WordPress-Theme-Verzeichnis: /wp-content/themes/. Erstellen Sie einen neuen Ordner. Jeder Name funktioniert, aber die Konvention ist, den Suffix -child an den Namen des übergeordneten Themes anzuhängen: Für twentytwentyfive wäre der Child-Ordner zum Beispiel twentytwentyfive-child.

Für die Arbeit mit Dateien per FTP eignet sich FileZilla gut. Über das Hosting nutzen Sie den eingebauten Dateimanager in cPanel oder Ihrem Hosting-Panel.

Schritt 2. style.css mit dem Theme-Header erstellen

Erstellen Sie im Child-Theme-Ordner eine Datei namens style.css. Dies ist die einzige erforderliche Datei. Fügen Sie den Theme-Header ein:

1/*
2Theme Name: Twenty Twenty-Five Child
3Theme URI: https://example.com/
4Description: Child theme for Twenty Twenty-Five
5Author: Your Name
6Template: twentytwentyfive
7Version: 1.0.0
8*/

Die Template:-Zeile ist diejenige, die das Child-Theme mit dem übergeordneten Theme verknüpft. Der Wert muss EXAKT mit dem Ordnernamen des übergeordneten Themes übereinstimmen. Für Twenty Twenty-Five heißt der Ordner twentytwentyfive, also schreiben Sie genau das. Ein Tippfehler oder falsche Groß-/Kleinschreibung führt dazu, dass das Theme nicht als Child-Theme erkannt wird.

Schritt 3. Styles des übergeordneten Themes einbinden

An diesem Punkt funktioniert das Child-Theme bereits; Sie können es unter Design → Themes aktivieren. Aber die Website wird ohne Styles erscheinen, weil Ihre style.css noch leer ist (abgesehen vom Header).

Erstellen Sie eine Datei namens functions.php im Child-Theme-Ordner und fügen Sie den Code zum Einbinden der übergeordneten Styles hinzu:

1add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
2
3function my_theme_enqueue_styles() {
4 $theme = wp_get_theme( 'twentytwentyfive' );
5 $version = $theme->get( 'Version' );
6
7 wp_enqueue_style(
8 'parent-style',
9 get_template_directory_uri() . '/style.css',
10 array(),
11 $version
12 );
13}

Dieser Code greift dynamisch die Version des übergeordneten Themes auf und fügt sie als Parameter zur Stylesheet-URL hinzu. Wenn das Theme aktualisiert wird, ändert sich die Version, der Browser leert seinen Cache, und die Nutzer sehen die aktuellen Styles ohne CSS-Probleme.

Ersetzen Sie twentytwentyfive durch den Namen Ihres übergeordneten Themes. Verwenden Sie wp_get_theme() anstelle einer hartcodierten Versionsnummer; das schützt Sie vor Cache-Problemen bei Updates.

Code und Child-Theme-Dateien

Schritt 4. Child-Theme aktivieren

Im WordPress-Admin: Design → Themes → Ihr neu erstelltes Child-Theme suchen → Aktivieren. Das Erscheinungsbild der Website ändert sich nicht; das ist normal. Sie sind auf dem Child-Theme, und es funktioniert.

Wie Sie ein Child-Theme anpassen

Das Theme ist aktiviert; jetzt geht es an die Anpassung. Hier ist, was Sie tun können und sollten.

Eigene Styles hinzufügen

Schreiben Sie alle Ihre CSS-Regeln IN DIE style.css-Datei des Child-Themes, nach dem Header-Bereich. Sie überschreiben automatisch die Styles des übergeordneten Themes mit derselben Spezifität. Wenn Sie die Überschriftenfarbe ändern möchten, schreiben Sie die Regel in die Child-style.css, und sie wird angewendet.

Template-Dateien bearbeiten

Sie möchten die Struktur von single.php oder footer.php ändern? Kopieren Sie die gewünschte Datei aus dem übergeordneten Theme in den Child-Theme-Ordner, wobei Sie dieselbe Unterordnerstruktur beibehalten (zum Beispiel /template-parts/). Bearbeiten Sie die Kopie im Child-Theme; wenn WordPress lädt, verwendet es Ihre Version anstelle des Originals aus dem übergeordneten Theme.

Wichtiges Detail: Sie können nur TEMPLATE-DATEIEN kopieren (diejenigen, die sich im Stammordner des Themes und im Ordner template-parts/ befinden). Dateien aus Unterordnern wie inc/, functions/ und classes/ werden auf diese Weise nicht kopiert. Um Logik aus diesen Dateien zu ändern, verwenden Sie WordPress-Hooks und -Filter.

Erweitern über functions.php

Die functions.php des Child-Themes wird VOR der des übergeordneten Themes geladen. Das bedeutet, Sie können:

  • Neue Funktionen hinzufügen, ohne die functions.php des übergeordneten Themes anzufassen;
  • Funktionen des übergeordneten Themes nur dann überschreiben, wenn sie in if ( ! function_exists() ) verpackt sind;
  • Neue Hooks und Filter hinzufügen, um das Verhalten des übergeordneten Themes oder von WordPress selbst zu ändern.

Beispiel: SVG-Uploads über die Child-functions.php erlauben:

1function my_child_allow_svg( $mimes ) {
2 $mimes['svg'] = 'image/svg+xml';
3 return $mimes;
4}
5add_filter( 'upload_mimes', 'my_child_allow_svg' );

Kopieren Sie NIEMALS die GESAMTE functions.php aus dem übergeordneten Theme in das Child-Theme. Das führt zu einem fatalen Fehler aufgrund doppelt deklarierter Funktionen. Die Child-functions.php erweitert die des übergeordneten Themes; sie ersetzt sie nicht.

Neue Template-Dateien hinzufügen

Ein Child-Theme kann Templates enthalten, die im übergeordneten Theme nicht existieren. Sie können zum Beispiel template-full-width.php für Seiten ohne Seitenleiste erstellen, und WordPress wird es im Child-Theme erkennen und als Option beim Bearbeiten einer Seite anbieten.

Werkzeuge und Texteditoren

Jeder Editor funktioniert für Child-Theme-Code, aber Syntaxhervorhebung erleichtert die Sache. Hier sind einige Optionen:

  • VS Code: kostenlos, mit Erweiterungen für PHP und WordPress;
  • Notepad++: ein schlanker Editor für Windows, der CSS/PHP/JS beherrscht;
  • Sublime Text: schnell und minimalistisch, nach der Testphase kostenpflichtig.

Für den Zugriff auf Dateien per FTP nutzen Sie den FileZilla FTP-Client. Für Hosting-Nutzer ist der eingebaute cPanel-Dateimanager völlig ausreichend, um ein paar Dateien zu erstellen.

Entwickler bei der Arbeit an einer WordPress-Website

Häufige Fehler und wie Sie sie beheben

Über Jahre der Arbeit mit Child-Themes haben wir eine Liste der häufigsten Stolpersteine zusammengestellt.

„Das Child-Theme wird nicht erkannt." Fast immer ist das ein Fehler in der Template:-Zeile. Prüfen Sie, ob der Ordnername des übergeordneten Themes Zeichen für Zeichen übereinstimmt, inklusive Groß-/Kleinschreibung und Bindestrichen. TwentyTwentyFive und twentytwentyfive sind unterschiedliche Namen.

„Die Website zeigt reines HTML ohne Styles." Das Child-Theme ist aktiviert, aber die Styles sind nicht eingebunden. Fügen Sie wp_enqueue_style() in der functions.php des Child-Themes hinzu (siehe Schritt 3).

„Fataler PHP-Fehler nach der Aktivierung." Höchstwahrscheinlich haben Sie die functions.php des übergeordneten Themes in das Child-Theme kopiert, und jetzt werden Funktionen doppelt deklariert. Entfernen Sie die Duplikate aus der Child-functions.php; behalten Sie nur IHRE Funktionen.

„Customizer-Einstellungen sind weg." Sie sind an den Theme-Namen gebunden. Wechseln Sie vorübergehend zurück zum übergeordneten Theme, exportieren Sie die Einstellungen (per Plugin oder dem eingebauten Tool des Themes), aktivieren Sie dann das Child-Theme und importieren Sie sie.

„Ein Update des übergeordneten Themes hat das Layout zerschossen." Der Entwickler hat die HTML-Struktur eines Templates geändert, das Sie in das Child-Theme kopiert haben. Ihre Kopie ist jetzt inkompatibel mit den neuen Styles. Lösung: Vergleichen Sie das neue übergeordnete Template mit Ihrer Kopie und passen Sie die Änderungen an.

Schritt-für-Schritt-Video (EN) zum Erstellen eines Child-Themes: vom Anlegen des Ordners bis zur finalen Aktivierung und Style-Einrichtung. Kanal WPEstate, 2025, klar und ohne Füllmaterial.

⁉️🤔 Häufig gestellte Fragen

Muss ich für jede WordPress-Website ein Child-Theme erstellen?

Nein. Wenn Sie keine Theme-Dateien bearbeiten und keinen eigenen Code hinzufügen, brauchen Sie kein Child-Theme. Aber wenn Sie jemals den Theme-Editor im Admin geöffnet, CSS unter Zusätzliches CSS hinzugefügt haben und planen, Templates zu ändern, erstellen Sie ein Child-Theme. Es dauert jetzt 10 Minuten und spart beim nächsten Update Stunden.

Was passiert, wenn ich das übergeordnete Theme lösche, aber das Child-Theme behalte?

Die Website stürzt mit einem kritischen Fehler ab. Ein Child-Theme ohne sein übergeordnetes Theme funktioniert nicht; es enthält keinen vollständigen Satz an Dateien und erbt alles vom übergeordneten Theme. Bevor Sie das übergeordnete Theme löschen, löschen (oder deaktivieren) Sie zuerst das Child-Theme und aktivieren Sie ein anderes Theme.

Kann ich ein „Enkel"-Theme erstellen, ein Child eines Child-Themes?

Nein. WordPress unterstützt nur eine Vererbungsebene: übergeordnetes Theme → Child-Theme. Für komplexe Anpassungen, die nicht in ein einzelnes Child-Theme passen, ist der richtige Ansatz, das Theme zu forken und ein vollständiges übergeordnetes Theme zu erstellen oder die Logik in ein separates Plugin auszulagern.

Funktioniert ein Child-Theme mit Block-Themes (FSE, Full Site Editing)?

Ja, aber der Mechanismus unterscheidet sich geringfügig. Bei Block-Themes wird die theme.json des Child-Themes mit der des übergeordneten Themes zusammengeführt, anstatt sie zu ersetzen. Templates und Template-Teile werden auf dieselbe Weise überschrieben: indem eine Datei mit demselben Namen im Child-Theme erstellt wird. Weitere Details finden Sie in der offiziellen Developer-Resources-Dokumentation auf wordpress.org.

Wie übertrage ich bereits im übergeordneten Theme vorgenommene Anpassungen in das Child-Theme?

Identifizieren Sie, was Sie geändert haben: CSS, Templates oder functions.php. Kopieren Sie CSS-Regeln in die Child-style.css. Für geänderte Templates kopieren Sie die Dateien in das Child-Theme und behalten Ihre Bearbeitungen dort. Übertragen Sie Code aus der functions.php des übergeordneten Themes selektiv: nur Ihre Funktionen, nicht die gesamte Datei. Entfernen Sie nach der Übertragung Ihre Bearbeitungen aus dem übergeordneten Theme; andernfalls gehen sie beim nächsten Update verloren.

Ob Sie jetzt ein Child-Theme erstellen sollten

Wenn Sie bis hierher gelesen haben, lautet die Antwort wahrscheinlich ja. Ein Child-Theme verkompliziert die Website nicht und verlangsamt sie nicht. Es trennt Ihren Code vom Code des Theme-Entwicklers. Es ist wie das Kommentieren von Code: Anfangs scheint es unnötig, aber einen Monat später rettet es Ihnen den Tag.

Für diejenigen, die zum ersten Mal ein Theme bearbeiten: Beginnen Sie mit einer Sandbox. Ein lokaler Server (LocalWP, XAMPP) oder eine Staging-Site bei Ihrem Hosting. Erstellen Sie ein Child-Theme nach den obigen Schritten, fügen Sie ein paar CSS-Regeln hinzu, kopieren Sie ein Template. Wenn Sie sehen, dass alles funktioniert, wiederholen Sie es auf Ihrer Live-Site.

Die Frage ist nicht, ob Sie ein Child-Theme brauchen. Die Frage ist, wann Sie sich daran erinnern: vor dem Theme-Update oder nachdem Ihre Anpassungen verschwunden sind.