Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung WordPress 30.09.2026 · 9 min Lesezeit

WordPress Child-Theme anlegen: Theme-Updates ohne Verlust eigener Anpassungen

Warum Theme-Updates Änderungen an Theme-Dateien löschen und wie ein Child-Theme das verhindert: anlegen per WP-CLI, Anpassungen umziehen, zusätzliches CSS und Website-Editor-Stile übernehmen. Getestet mit WordPress 7.1.2.

Mit KI erstellt – redaktionelle Prüfung ausstehend

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Mehr dazu

Grafik mit der Überschrift Child-Theme sicher anlegen, drei Karten Theme, Anpassung, Update und einem stilisierten WordPress-Adminbereich

Wer eigene Anpassungen direkt in die Dateien eines Themes schreibt, verliert sie beim nächsten Theme-Update. WordPress ersetzt beim Update den kompletten Theme-Ordner, geänderte Dateien werden dabei ohne Rückfrage überschrieben. Ein Child-Theme löst das Problem: Es erbt alles vom Eltern-Theme, enthält aber nur Ihre eigenen Änderungen in einem eigenen Ordner, den kein Update berührt. Diese Anleitung zeigt, wie Sie ein Child-Theme anlegen, bestehende Anpassungen umziehen und was beim Wechsel mit Stilen aus dem Website-Editor und zusätzlichem CSS passiert. Alle Schritte wurden im Labor mit WordPress 7.1.2 und dem Theme Twenty Twenty-Five geprüft.

Voraussetzungen

  • WordPress: eine aktuelle Installation, getestet mit WordPress 7.1.2 in deutscher Sprache.
  • PHP: die Version Ihres Hostings, im Labor PHP 8.4. Twenty Twenty-Five verlangt laut Kopfzeile mindestens PHP 7.2 und WordPress 6.7.
  • Zugriff: SFTP oder SSH auf das Verzeichnis wp-content/themes. WP-CLI (getestet mit 2.12.0) ist optional, spart aber Tipparbeit.
  • Rechte: Administrator in WordPress.
  • Backup: eine aktuelle Sicherung von Dateien und Datenbank. Der Theme-Wechsel verschiebt Widgets und Stile, eine Sicherung macht das umkehrbar.
  • Testumgebung: empfohlen. Wie Sie eine Kopie Ihrer Website anlegen, zeigt die Anleitung WordPress-Staging-Umgebung per WP-CLI einrichten.

Schritt 1: Prüfen, ob Anpassungen im Eltern-Theme stecken

Bevor Sie ein Child-Theme anlegen, klären Sie, ob bereits jemand Dateien des Themes geändert hat. Das ist der Fall, den das nächste Update zerstört. Im Labor wurde eine Zeile an die style.css von Twenty Twenty-Five 1.4 angehängt und das Theme danach per WP-CLI auf 1.5 aktualisiert. Die Zeile war anschließend verschwunden, WP-CLI meldete dabei nur „Die alte Version des Themes wird entfernt ...“ und „Das Theme wurde erfolgreich aktualisiert.“ Eine Warnung gibt es nicht.

Für Themes gibt es keinen Prüfsummen-Befehl wie für den WordPress-Kern. Vergleichen Sie deshalb mit dem Original: Ermitteln Sie die installierte Version, laden Sie genau diese Version als ZIP von der Theme-Seite auf wordpress.org, entpacken Sie sie außerhalb des Webverzeichnisses und vergleichen Sie beide Ordner. Installieren Sie das Original nicht mit --force über das vorhandene Theme, das würde die Anpassungen löschen, die Sie gerade suchen.

wp theme list --fields=name,status,version
mkdir -p ~/theme-vergleich && cd ~/theme-vergleich
unzip -q twentytwentyfive.1.5.zip
diff -rq twentytwentyfive /var/www/html/wp-content/themes/twentytwentyfive

Jede Zeile der Ausgabe von diff -rq nennt eine geänderte oder zusätzliche Datei. Das sind die Anpassungen, die Sie in Schritt 3 umziehen.

Verifizieren: Sie haben eine Liste der geänderten Dateien oder wissen sicher, dass das Eltern-Theme unverändert ist.

Schritt 2: Child-Theme anlegen

Ein Child-Theme braucht nur einen Ordner und eine style.css mit Kopfzeile. Entscheidend ist das Feld Template: Es muss exakt dem Ordnernamen des Eltern-Themes in wp-content/themes entsprechen, nicht dessen Anzeigenamen. Für Twenty Twenty-Five lautet der Wert also twentytwentyfive. Mit WP-CLI erzeugt ein Befehl Ordner, style.css und functions.php:

wp scaffold child-theme meine-firma --parent_theme=twentytwentyfive --theme_name="Meine Firma"

Im Labor meldete WP-CLI Success: Created '/var/www/html/wp-content/themes/meine-firma'. und legte diese Kopfzeile an:

/*
Theme Name:     Meine Firma
Theme URI:      
Description:    Twentytwentyfive child theme.
Author:         Me
Author URI:     
Template:       twentytwentyfive
Version:        0.1.0
*/

Ohne WP-CLI legen Sie den Ordner per SFTP an und erstellen die style.css mit mindestens den Zeilen Theme Name und Template. Die erzeugte functions.php lädt zuerst das Stylesheet des Eltern-Themes und danach das eigene. Das Theme-Handbuch weist darauf hin, dass Block-Themes ihre Gestaltung meist über theme.json regeln und die style.css dann oft gar nicht laden. Ob Sie das Stylesheet einbinden müssen, hängt also vom Eltern-Theme ab. Im Labor bindet die Scaffold-Variante das Child-Stylesheet zuverlässig ein, der Seitenquelltext enthielt danach meine-firma/style.css?ver=0.1.0.

Tragen Sie bei Author Ihr Unternehmen ein und erhöhen Sie Version bei jeder Änderung. Die Version hängt WordPress an die CSS-Adresse an, dadurch laden Browser nach einer Änderung die neue Datei statt einer zwischengespeicherten.

Verifizieren: Unter Design > Themes erscheint „Meine Firma“ als eigene Kachel. wp theme list zeigt das Theme mit Status inactive.

Schritt 3: Anpassungen in das Child-Theme übertragen

Je nach Art der Änderung gibt es einen festen Platz im Child-Theme. Die Regeln stammen aus dem Theme-Handbuch und wurden im Labor nachvollzogen:

AnpassungOrt im Child-ThemeVerhalten
CSSstyle.csswird nach dem Eltern-Stylesheet geladen
PHP-Funktionen, Hooksfunctions.phpwird zusätzlich geladen, direkt vor der des Eltern-Themes
Vorlagen, Vorlagenteile, Mustergleicher Pfad wie im Eltern-Theme, z. B. parts/footer.htmlersetzt die Datei des Eltern-Themes
Farben, Schriften, Abstände (Block-Theme)theme.jsonergänzt die Einstellungen des Eltern-Themes

Der wichtigste Unterschied betrifft die functions.php. Sie ersetzt die Datei des Eltern-Themes nicht, beide werden geladen. Kopieren Sie deshalb nie die komplette functions.php des Eltern-Themes in das Child-Theme. Übernehmen Sie nur Ihren eigenen Code. Twenty Twenty-Five umschließt seine Funktionen mit if ( ! function_exists( ... ) ), solche Funktionen dürfen Sie im Child-Theme gezielt neu definieren, weil dessen functions.php zuerst geladen wird. Bei Funktionen ohne diese Prüfung führt ein doppelter Name zu einem schweren Fehler.

Für Vorlagen kopieren Sie die Datei aus dem Eltern-Theme an denselben relativen Pfad und ändern nur die Kopie. Im Labor wurde parts/footer.html in das Child-Theme kopiert und um einen Absatz ergänzt. Die Startseite zeigte danach die geänderte Fußzeile, das Eltern-Theme blieb unverändert. Bedenken Sie den Preis: Kopierte Vorlagen erhalten keine Verbesserungen mehr aus Updates des Eltern-Themes. Kopieren Sie deshalb nur, was Sie wirklich ändern müssen.

Verifizieren: Ihre Anpassungen liegen ausschließlich im Ordner des Child-Themes, und php -l functions.php im Child-Ordner meldet No syntax errors detected.

Schritt 4: Child-Theme aktivieren und Einstellungen übernehmen

Aktivieren Sie das Child-Theme unter Design > Themes mit „Aktivieren“ oder per WP-CLI mit wp theme activate meine-firma. Das Eltern-Theme bleibt installiert und muss es auch bleiben. Im Labor verweigerte WP-CLI das Löschen mit Warning: Can't delete the parent of the currently active theme: twentytwentyfive.

Einige Einstellungen speichert WordPress nicht global, sondern je Theme. Nach der Aktivierung fehlen sie scheinbar. Drei Punkte zeigten sich im Labor:

  • Zusätzliches CSS: Das CSS aus Design > Anpassen > Zusätzliches CSS liegt in einem eigenen Datensatz pro Theme. Nach dem Wechsel war es auf der Website nicht mehr zu sehen. Übernehmen lässt es sich per WP-CLI in einem Befehl:
wp eval 'wp_update_custom_css_post( wp_get_custom_css( "twentytwentyfive" ) );'
  • Stile aus dem Website-Editor: Anpassungen unter Design > Editor > Stile speichert WordPress in einem Datensatz mit dem Namen wp-global-styles- und dem Ordnernamen des Themes. Beim Aktivieren des Child-Themes legte WordPress im Labor einen neuen, leeren Datensatz wp-global-styles-meine-firma an, die Stile des Eltern-Themes blieben im alten Datensatz. Notieren Sie Ihre Farben und Schriften vor dem Wechsel und stellen Sie sie im Child-Theme erneut ein, oder übertragen Sie sie dauerhaft in dessen theme.json.
  • Widgets: In den Theme-Einstellungen des Child-Themes lagen nach dem Wechsel alle Widgets unter „inaktiv“. Hat Ihr Theme Widget-Bereiche, ordnen Sie sie unter Design > Widgets wieder zu.

Weil Stile und Einstellungen je Theme gespeichert werden, gilt: Legen Sie das Child-Theme an, bevor Sie mit größeren Anpassungen im Website-Editor beginnen. Bei neuen Websites spart das die Nacharbeit vollständig.

Verifizieren: wp theme status meine-firma zeigt Status: Active. Die Website sieht aus wie vor dem Wechsel, und im Quelltext der Startseite findet sich Ihr zusätzliches CSS.

Schritt 5: Eltern-Theme gefahrlos aktualisieren

Ab jetzt aktualisieren Sie das Eltern-Theme wie jedes andere, im Backend unter Dashboard > Aktualisierungen oder per wp theme update twentytwentyfive. Das Child-Theme selbst erhält keine Updates, es gehört Ihnen. Prüfen Sie nach jedem Update die Seiten, deren Vorlagen Sie kopiert haben: Ändert das Eltern-Theme dort Strukturen, passt Ihre Kopie womöglich nicht mehr dazu. Ein Test auf der Staging-Kopie vor dem Live-Update ist hier besonders sinnvoll. Wie Sie Theme-Updates per Kommandozeile einspielen, beschreibt die Anleitung WordPress-Updates per WP-CLI.

Theme-Updates gehören damit zur regelmäßigen Pflege wie Plugin- und Core-Updates, samt Sicherung vorher und Sichtprüfung danach. Wer diese Routine nicht selbst im Kalender halten möchte, kann sie abgeben: Die WordPress-Wartung von wordpressupdate.de übernimmt Updates von WordPress, Plugins und Themes mit Kompatibilitätsprüfung und erstellt wöchentliche Backups auf externem Speicher.

Verifizieren: Nach dem Update zeigt wp theme list die neue Version des Eltern-Themes, das Child-Theme ist weiter aktiv, und Ihre Anpassungen sind sichtbar.

Typische Fehler

  • „Das übergeordnete Theme fehlt. Bitte installiere das übergeordnete Theme …“: Der Wert bei Template stimmt nicht mit dem Ordnernamen überein. Im Labor löste Template: twenty-twenty-five genau diese Meldung aus, wp theme activate brach ab. Korrigieren Sie den Wert auf den exakten Ordnernamen.
  • „Auf dieser Website ist ein kritischer Fehler aufgetreten.“ nach Änderung der functions.php: Meist ein doppelter Funktionsname. Das Fehlerprotokoll zeigte im Labor PHP Fatal error: Cannot redeclare function get_header() (previously declared in /var/www/html/wp-includes/general-template.php:27). Benennen Sie eigene Funktionen mit einem eindeutigen Präfix, etwa meine_firma_. Wie Sie das Protokoll aktivieren, zeigt WordPress Debug-Modus aktivieren.
  • Das Child-CSS greift nicht: Das Stylesheet wird nicht geladen, oder der Browser nutzt eine alte Kopie. Prüfen Sie im Quelltext, ob style.css des Child-Themes eingebunden ist, und erhöhen Sie die Version.
  • Nach dem Wechsel fehlen Farben oder zusätzliches CSS: Diese Einstellungen hängen am Theme, siehe Schritt 4.
  • Das Eltern-Theme lässt sich nicht löschen: Das ist gewollt. Ein Child-Theme funktioniert nur mit installiertem Eltern-Theme.

Häufige Fragen

Brauche ich bei einem Block-Theme überhaupt ein Child-Theme?

Nicht immer. Änderungen im Website-Editor speichert WordPress in der Datenbank, ein Theme-Update überschreibt sie nicht. Ein Child-Theme brauchen Sie, sobald Sie Dateien ändern: eigenes PHP, eigene Vorlagen als Datei oder eine eigene theme.json.

Reicht nicht ein Plugin für eigenes CSS oder eigene Funktionen?

Für einzelne Code-Schnipsel, die unabhängig vom Theme sind, ist ein kleines eigenes Plugin sogar die bessere Wahl, weil es einen Theme-Wechsel übersteht. Gestaltung und Vorlagen gehören dagegen ins Child-Theme.

Kann ich ein Child-Theme von einem Child-Theme ableiten?

Nein. Das Theme-Handbuch kennt nur zwei Ebenen, Eltern- und Child-Theme.

Was passiert, wenn der Theme-Anbieter die Entwicklung einstellt?

Das Child-Theme hängt dann an einem Eltern-Theme ohne Sicherheitsupdates. Planen Sie in diesem Fall einen Wechsel auf ein gepflegtes Theme. Das Handbuch empfiehlt bei sehr umfangreichen Anpassungen ohnehin, ein eigenes vollständiges Theme zu erwägen.

Testumfang

Wir haben das Ganze mit WordPress 7.1.2 und Twenty Twenty-Five durchgespielt. Eine Änderung direkt im Eltern-Theme ging beim Update verloren. Ein mit wp scaffold child-theme angelegtes Child-Theme ließ sich dagegen einbinden und konnte den Footer überschreiben.

Kommerzielle Themes und Page-Builder haben wir nicht geprüft. Wenn Sie so etwas einsetzen, testen Sie am besten zuerst auf einer Kopie Ihrer Website.

Fazit

Ein Child-Theme kostet wenige Minuten und schützt jede Datei-Anpassung vor dem nächsten Theme-Update. Achten Sie auf den exakten Ordnernamen bei Template, übernehmen Sie nur eigenen Code in die functions.php und denken Sie daran, dass zusätzliches CSS und Website-Editor-Stile je Theme gespeichert werden. Wenn Sie Theme-, Plugin- und Core-Updates lieber abgeben möchten, übernimmt das die WordPress-Wartung von Marcel Schönfelder.

Weiterführende Anleitungen und Quellen

WordPressChild-ThemeTheme-UpdatesWP-CLIWartung