Si alguna vez has personalizado tu tema y has visto cómo una actualización borraba todos tus cambios, ya sabes por qué existe el child theme WordPress (o tema hijo). Un child theme es un tema que hereda todo el diseño y la funcionalidad de otro tema (el padre) y te permite modificar solo lo que quieras cambiar: unos estilos, una plantilla, unas funciones. La gracia del invento es que tus cambios viven en una carpeta separada, de modo que cuando el tema padre se actualiza (y debe actualizarse, por seguridad y compatibilidad), tus personalizaciones permanecen intactas. Es el mecanismo oficial de WordPress para personalizar temas de terceros, y crearlo cuesta literalmente dos archivos y cinco minutos. En esta guía vemos qué es exactamente un tema hijo, cuándo lo necesitas de verdad (y cuándo no), cómo crearlo paso a paso con el código completo, cómo funciona la jerarquía de plantillas que lo hace posible y los errores típicos que conviene esquivar desde el principio.
Qué es un child theme y cómo funciona la herencia
Un tema hijo es una carpeta dentro de wp-content/themes que declara, mediante una línea en su hoja de estilos, que su padre es otro tema instalado. A partir de esa declaración, WordPress aplica una regla simple y potente:
- Para las plantillas PHP: si el archivo existe en el hijo, se usa el del hijo; si no, se usa el del padre. Copiar
header.phpdel padre al hijo y editarlo ahí sustituye la cabecera sin tocar el original. - Para los estilos y funciones: no se sustituyen, se suman. El
functions.phpdel hijo se carga además del padre (y antes), y el CSS del hijo se encola junto al del padre para sobrescribir reglas concretas.
El resultado práctico: el tema padre sigue siendo el motor (y puede actualizarse con normalidad), mientras el hijo actúa como una capa fina con tus diferencias. Actualizar el padre nunca toca la carpeta del hijo, así que tus cambios sobreviven a cualquier actualización.
Cuándo necesitas un tema hijo (y cuándo no)
No toda personalización justifica un child theme. La línea divisoria es clara:
Sí necesitas un child theme si…
- Vas a editar archivos del tema: plantillas PHP, o CSS más allá de unos pocos ajustes.
- Quieres añadir funciones ligadas al diseño (registrar un menú extra, un área de widgets, tamaños de imagen).
- Mantienes webs de clientes donde las actualizaciones deben poder aplicarse sin miedo.
No lo necesitas si…
- Solo quieres unos retoques de CSS: el campo “CSS adicional” del personalizador (o de los estilos globales en temas de bloques) los guarda en la base de datos, a salvo de actualizaciones.
- Tu cambio es funcionalidad pura (un shortcode, un ajuste de WooCommerce, un snippet de seguimiento): eso pertenece a un plugin o a un gestor de snippets como WPCode, porque debe sobrevivir también a un cambio de tema.
- Usas un tema de bloques moderno y todos tus cambios caben en el editor del sitio: las modificaciones hechas ahí ya se guardan en la base de datos.
La regla de oro: diseño que toca archivos del tema, al child theme; funcionalidad independiente del diseño, a un plugin. Y si estás eligiendo tema todavía, hazlo pensando también en esto: un buen tema bien mantenido merece la pequeña inversión de crearle un hijo antes de personalizar. En nuestra guía sobre wie man das perfekte Theme für seine WordPress-Website auswählt repasamos qué señales distinguen a un tema sólido.
Cómo crear un child theme WordPress paso a paso
Vamos a crear un tema hijo para un tema padre de ejemplo; usaremos Astra, pero el proceso es idéntico para cualquier tema clásico: solo cambia el identificador del padre. Necesitas acceso a los archivos (SFTP o el gestor del hosting) o, en local, tu explorador de archivos.
Paso 1: crea la carpeta
Dentro de wp-content/themes, crea una carpeta nueva. Por convención se usa el nombre del padre con el sufijo -child:
wp-content/themes/astra-child/
├── style.css
└── functions.php
Paso 2: crea style.css con la cabecera
Die Datei style.css es obligatorio y su cabecera de comentario es lo que convierte la carpeta en un tema. La línea crítica es Template: debe contener el nombre exacto de la carpeta del tema padre (sensible a mayúsculas):
/*
Theme Name: Astra Child
Theme URI: https://biblioweb.es/
Description: Tema hijo de Astra para personalizaciones seguras
Author: BiblioWeb
Author URI: https://biblioweb.es/
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/
/* A partir de aquí, tus estilos personalizados. */
Schritt 3: Stile in functions.php einbinden
Im Gegensatz zu dem, was früher gemacht wurde (mit @import, heute wegen Langsamkeit abgeraten), wird das Stylesheet des Eltern-Themes mit einer korrekten Einbindung von functions.php:
<?php
/**
* Encolar la hoja de estilos del tema padre y la del hijo.
*/
add_action( 'wp_enqueue_scripts', 'astra_child_enqueue_styles' );
function astra_child_enqueue_styles() {
// Estilos del padre.
wp_enqueue_style(
'astra-parent-style',
get_template_directory_uri() . '/style.css',
array(),
wp_get_theme( get_template() )->get( 'Version' )
);
// Estilos del hijo, cargados después para poder sobrescribir.
wp_enqueue_style(
'astra-child-style',
get_stylesheet_directory_uri() . '/style.css',
array( 'astra-parent-style' ),
wp_get_theme()->get( 'Version' )
);
}
Beachte das Detail der beiden Zwillingsfunktionen: get_template_directory_uri() zeigt immer auf das Eltern-Theme y get_stylesheet_directory_uri() zum Child-Theme. Sie zu verwechseln ist die Ursache der Hälfte der Probleme mit Child Themes. Hinweis: Einige Themes (darunter Astra) binden ihre Stile bereits so ein, dass das Child-Theme sich selbst lädt; wenn du doppelte Stile siehst, vereinfache die Einbindung, indem du nur das Stylesheet des Child-Themes mit der entsprechenden Abhängigkeit belässt.
Schritt 4: aktivieren und überprüfen
Gehen Sie zu Design → Themes: verás “Astra Child” como un tema más. Actívalo. La web debe verse exactamente igual que con el padre; si se ve sin estilos, revisa el valor de Template und die Einbindung. Damit ist dein WordPress Child Theme nun aktiv und bereit für Anpassungen. Optional füge ein Bild hinzu screenshot.png (1200×900) in den Ordner des Child-Themes, damit es im Selektor ein Vorschaubild anzeigt.
Schritt 5 (optional): Templates überschreiben
Um ein Template des Eltern-Themes zu ändern, kopiere es in das Child-Theme unter Beachtung seines relativen Pfades und bearbeite es dort. Um beispielsweise das Template für einzelne Beiträge anzupassen, kopiere single.php des Eltern-Themes in das Stammverzeichnis des Child-Themes; für ein Template innerhalb von Unterordnern (häufig in WooCommerce) beachte die Struktur: woocommerce/single-product.php. WordPress wird deine Kopie automatisch verwenden.
Was vom Child Theme aus angepasst werden kann: nützliche Beispiele
Mit der eingerichteten Struktur wird das Child-Theme zu deinem sicheren Arbeitsbereich. Einige übliche Verwendungen:
Eigene Stile
/* En style.css del hijo */
.site-title {
font-size: 2.2rem;
letter-spacing: -0.02em;
}
.entry-content a {
text-decoration: underline;
text-underline-offset: 3px;
}
Designbezogene Funktionen
// En functions.php del hijo: registrar un menú adicional.
add_action( 'after_setup_theme', 'astra_child_menus' );
function astra_child_menus() {
register_nav_menu( 'menu-legal', 'Menú legal del pie' );
}
// Un tamaño de imagen a medida para tarjetas del blog.
add_action( 'after_setup_theme', 'astra_child_image_sizes' );
function astra_child_image_sizes() {
add_image_size( 'tarjeta-blog', 600, 400, true );
}
Denke an das Kriterium des vorherigen Abschnitts: Wenn der Snippet nicht vom Design abhängt (Analyse, Weiterleitungen, Verhaltenseinstellungen), platziere ihn nicht im functions.php des Child-Themes; verschiebe es in ein eigenes Plugin oder einen Snippet-Manager, damit es einen zukünftigen Theme-Wechsel überlebt. Viele der essenzielle WordPress-Plugins existieren genau dafür, nicht alles ins Theme packen zu müssen.
Häufige Fehler bei Child Themes
- Template falsch geschrieben. Wenn
Template: astrano coincide exactamente con el nombre de la carpeta del padre, WordPress mostrará el hijo como “roto”. Es el fallo número uno. - @import im CSS verwenden. Es funktioniert, aber es serialisiert die Downloads und beeinträchtigt die Geschwindigkeit. Binde immer von
functions.php. - Zu viele Templates kopieren. Jedes in das Child-Theme kopierte Template erhält keine Verbesserungen mehr, die das Eltern-Theme in seinen Updates enthält. Kopiere nur das, was du wirklich ändern möchtest, und überprüfe deine Kopien, wenn das Eltern-Theme große Änderungen veröffentlicht.
- functions.php verwechseln. El del hijo no sustituye al del padre: ambos se cargan. Si declaras una función con el mismo nombre que una del padre no “la sobrescribes”: provocas un error fatal, salvo que el padre la haya envuelto en
function_exists(). - Das Child-Theme nach der Anpassung des Eltern-Themes erstellen. Die richtige Reihenfolge ist: Eltern-Theme installieren, Child-Theme erstellen, Child-Theme aktivieren und erst dann anpassen. Die Einstellungen des Customizers werden pro Theme gespeichert, sodass beim Aktivieren des Child-Themes einige Optionen neu konfiguriert werden müssen (oder mit einem Plugin zum Exportieren von Einstellungen migriert werden können).
- Bearbeiten ohne Sicherung. Ein PHP-Syntaxfehler in
functions.phplegt die Website lahm. Bearbeite per SFTP (niemals vom Desktop-Dateieditor in der Produktion) und habe eine aktuelle Sicherung, um schnell rückgängig zu machen.
Child Themes und Block-Themes: die Nuance von 2026
Mit Block-Themes (Full Site Editing) wird ein Großteil der klassischen Anpassungen (Header, Footer, Templates) visuell im Site-Editor vorgenommen und in der Datenbank gespeichert, nicht in Dateien. Das reduziert die Fälle, in denen ein Child Theme unerlässlich ist, aber es macht es nicht überflüssig: Es ist weiterhin der richtige Weg, um strukturiertes CSS hinzuzufügen, zu ändern theme.json (die globalen Stileinstellungen des Themes, die das Child-Theme ebenfalls überschreiben kann), eigene Muster registrieren oder HTML-Templates des Eltern-Themes anpassen. Der Vererbungsmechanismus funktioniert gleich: derselbe style.css mit seinem Template, und die Templates des Child-Themes (im Ordner templates/) haben Vorrang vor denen des Eltern-Themes. Die vollständige Referenz befindet sich im offizielles Handbuch für Child Themes von developer.wordpress.org.
Häufig gestellte Fragen
Beeinflusst ein Child Theme die Leistung von WordPress?
Der Einfluss ist vernachlässigbar: ein zusätzliches Stylesheet (oft winzig) und ein functions.php extra. Gut gebaut, mit der richtigen Einbindung und ohne @import, ein
Kann ich ein Child Theme von einem Child Theme erstellen?
Nein. WordPress unterstützt nur eine Vererbungsebene: Ein Child Theme kann kein Parent Theme für ein anderes Theme sein. Wenn du Varianten benötigst, arbeite mit einem einzigen, gut organisierten Child Theme oder erwäge einen anderen Ansatz (eigene Vorlagen, Anpassungs-Plugin).
Was passiert, wenn ich das Parent Theme wechsle?
Das Child Theme ist an sein spezifisches Parent Theme gebunden: Wenn du ein anderes Theme aktivierst, funktioniert das Child Theme so nicht mehr. Stile und Vorlagen sind selten übertragbar (sie hängen von den Klassen und der Struktur des Parent Themes ab), aber designunabhängige Funktionen schon, ein weiterer Grund, sie in einem Plugin und nicht im Theme zu halten.
Gibt es Plugins, die das Child Theme für mich erstellen?
Ja, Plugins wie Child Theme Configurator generieren die Struktur mit einem Klick und migrieren sogar die Customizer-Einstellungen vom Parent zum Child. Sie sind eine legitime Option, wenn du keine Dateien anfassen möchtest, obwohl, wie du gesehen hast, der manuelle Prozess zwei Dateien und fünf Minuten dauert, und das Verständnis dafür wird dir jedes Mal nützlich sein, wenn etwas nicht stimmt.
Es ist ratsam, mindestens einmal pro Quartal ein vollständiges SEO-Audit durchzuführen. Sie sollten jedoch die Leistung Ihrer Keywords und den Zustand Ihrer Website wöchentlich überwachen. Inhaltsaktualisierungen und kleinere Optimierungen können regelmäßiger vorgenommen werden.
Das WordPress Child Theme ist eines dieser kleinen Teile, die den Unterschied zwischen gutem Anpassen und Anpassen mit Verfallsdatum definieren. Zwei Dateien (style.css mit seinem Header und functions.php mit der Einbindung) genügen, um deine Änderungen vom Original-Theme zu trennen und sie vor Updates zu schützen. Die Regeln, um Fehler zu vermeiden, passen in drei Zeilen: Erstelle das Child Theme, bevor du personalisierst, kopiere nur die Vorlagen in das Child Theme, die du wirklich änderst, und behalte das functions.php des Themes für Designfunktionen, wobei die allgemeine Funktionalität in Plugins verbleibt. Wenn deine Website ein Drittanbieter-Theme verwendet und du vorhast, auch nur eine einzige Zeile seiner Dateien zu ändern, zögere nicht: Richte das Child Theme noch heute ein. Es ist die rentabelste Fünf-Minuten-Investition im WordPress-Ökosystem.