≡En resumen
- Con un tema hijo, tus cambios de código sobreviven a las actualizaciones del tema padre.
- Solo necesita un archivo obligatorio: style.css con la cabecera Template apuntando a la carpeta del padre.
- Los estilos se cargan con wp_enqueue_style en functions.php, no con @import.
- Para cambiar una plantilla, se copia al tema hijo con el mismo nombre y se edita ahí.
- En temas de bloques muchas personalizaciones se guardan desde el editor del sitio, así que el tema hijo se reserva para cambios de código o para distribuir un diseño.
01 ¿Qué es un tema hijo de WordPress?
El motivo de existir es muy práctico: si editas directamente los archivos del tema padre, la siguiente actualización los sobrescribe y pierdes el trabajo. La documentación oficial de WordPress lo advierte de forma explícita. Qué es exactamente el tema del que se hereda, cómo elegirlo y cómo actualizarlo se explica en la entrada de parent theme o tema padre; aquí vamos a la parte práctica: cuándo necesitas un tema hijo y cómo crearlo.
02 ¿Necesitas un tema hijo? Cuándo sí y cuándo no
| Qué quieres cambiar | ¿Tema hijo? | Alternativa |
|---|---|---|
| Unas pocas reglas de CSS | No es imprescindible | CSS adicional del personalizador o estilos del editor del sitio |
| Colores, tipografías y plantillas en un tema de bloques | No siempre | Editor del sitio: los cambios se guardan en la base de datos |
| Plantillas PHP de un tema clásico | Sí | No hay alternativa segura |
| Funciones, hooks o scripts ligados al diseño | Sí | Un plugin, si la función debe sobrevivir a un cambio de tema |
| Tipos de contenido, taxonomías o integraciones | No | Un plugin propio: son datos, no diseño |
| Distribuir un diseño a varias webs o controlarlo con Git | Sí | Ninguna mejor |
03 Cómo crear un tema hijo paso a paso
-
1
Crea la carpeta
En wp-content/themes, crea una carpeta con un nombre sin espacios, por ejemplo twentytwentyone-hijo.
-
2
Crea el style.css
Con la cabecera Theme Name y la cabecera Template, que debe coincidir exactamente con el nombre de la carpeta del tema padre.
-
3
Crea el functions.php
Úsalo para cargar las hojas de estilo con wp_enqueue_style y para añadir tus funciones.
-
4
Añade una captura (opcional)
Un archivo screenshot.png en la carpeta hace que el tema se identifique en Apariencia > Temas.
-
5
Sube y activa
Sube la carpeta por FTP o comprímela en .zip y súbela desde Apariencia > Temas > Añadir nuevo. El tema padre debe estar instalado.
-
6
Revisa la web
Comprueba que se cargan los estilos del padre y del hijo y vuelve a revisar los menús y widgets, que pueden necesitar reasignarse.
/*Theme Name: Twenty Twenty-One HijoTemplate: twentytwentyoneVersion: 1.0.0*/
Theme Name es el nombre que verás en el panel; Template, la carpeta del tema padre. Si Template no coincide, WordPress marcará el tema como roto porque no encuentra al padre.
04 Cargar los estilos: functions.php y wp_enqueue_style
Durante años se usó @import dentro del style.css del hijo para cargar el CSS del padre. Hoy se desaconseja: obliga al navegador a descargar las hojas en cadena y empeora la velocidad de carga web. Lo correcto es encolarlas desde el functions.php del tema hijo con la función de PHP wp_enqueue_style.
add_action( 'wp_enqueue_scripts', 'hijo_cargar_estilos' );function hijo_cargar_estilos() {wp_enqueue_style( 'padre-estilo', get_parent_theme_file_uri( 'style.css' ) );wp_enqueue_style( 'hijo-estilo', get_stylesheet_uri(), array( 'padre-estilo' ), wp_get_theme()->get( 'Version' ) );}
get_parent_theme_file_uri(), disponible desde WordPress 4.7, devuelve la URL de un archivo del tema padre; get_stylesheet_uri() apunta al style.css del tema activo, es decir, del hijo. La dependencia hace que el CSS del hijo se cargue después y pueda sobrescribir al del padre.
Un detalle importante: el functions.php del hijo no sustituye al del padre. Se cargan los dos, primero el del hijo. Si copias una función del padre con el mismo nombre, provocarás un error fatal por función duplicada; usa hooks y filtros, o nombres propios con un prefijo.
05 Sobrescribir plantillas del tema padre
Para cambiar una plantilla, copia el archivo del tema padre al tema hijo respetando el nombre y la ruta, por ejemplo footer.php o template-parts/content.php, y edita la copia. WordPress usa siempre la versión del hijo cuando existe. También puedes añadir plantillas nuevas que el padre no tiene, como una plantilla de página a medida.
06 Temas hijo en temas de bloques y theme.json
theme.json combinado
Si el hijo tiene su propio theme.json, WordPress lo combina con el del padre y los valores del hijo tienen prioridad. Basta con declarar lo que cambia, como la paleta o las tipografías.
Plantillas en HTML
Las plantillas y partes de un tema de bloques son archivos .html en las carpetas templates y parts; el hijo las sobrescribe con el mismo nombre.
Las personalizaciones del usuario ganan
Lo que se cambia desde el editor del sitio se guarda en la base de datos y se aplica por encima del theme.json del padre y del hijo.
Create Block Theme
Este plugin oficial permite crear un tema hijo desde el panel y guardar en él los cambios hechos en el editor del sitio.
En la práctica, con temas de bloques el tema hijo tiene sentido para versionar el diseño con Git, reutilizarlo en varias webs o añadir código. Para retoques puntuales de una sola web, el editor del sitio es suficiente. Si buscas un buen punto de partida, tienes opciones comparadas en las mejores plantillas gratuitas de WordPress.
07 Errores frecuentes con los temas hijo
- ✓Escribir en Template el nombre visible del tema padre en lugar del nombre de su carpeta.
- ✓Cargar el CSS del padre dos veces o no cargarlo en absoluto.
- ✓Copiar el functions.php completo del padre al hijo y provocar funciones duplicadas.
- ✓Copiar plantillas enteras para cambiar una línea que se podía modificar con un hook.
- ✓Borrar el tema padre porque «ya se usa el hijo»: el hijo deja de funcionar.
- ✓Poner en el tema hijo tipos de contenido o funciones que deberían ir en un plugin.
- ✓Activar el tema hijo directamente en producción sin probarlo antes en un entorno de pruebas.
Si tu web acumula un tema padre desactualizado, copias de plantillas antiguas o CSS que ya nadie entiende, a veces sale más a cuenta rehacer la base con un diseño web profesional sobre un tema ligero y mantenido que seguir parcheando.
Preguntas frecuentes sobre Tema hijo WordPress
Es un tema que hereda plantillas, estilos y funciones de otro tema, el tema padre, y solo contiene los archivos que modificas. Así puedes actualizar el padre sin perder tus cambios.
Crea una carpeta en wp-content/themes con un style.css que incluya las cabeceras Theme Name y Template (la carpeta del tema padre), añade un functions.php que cargue los estilos y activa el tema desde Apariencia > Temas.
El nombre exacto de la carpeta del tema padre, no su nombre comercial. Por ejemplo, twentytwentyone para Twenty Twenty-One.
No. Solo lo necesitas si vas a modificar archivos de código del tema. Para cambios de CSS o de diseño desde el panel y el editor del sitio no hace falta.
Sí. El plugin Create Block Theme crea temas hijo de temas de bloques desde el panel, y muchos temas clásicos ofrecen un tema hijo ya preparado para descargar.
El tema hijo sigue funcionando con tus cambios. Solo debes revisar las plantillas que copiaste, porque no reciben las correcciones que traiga la actualización.
El tema padre es un tema completo que funciona por sí solo; el tema hijo depende de él y solo guarda las personalizaciones.
Fuentes consultadas
Sobre el autor
Development Manager en appyweb
Dirige el equipo de desarrollo de appyweb: aplicaciones web y móviles, SaaS, integraciones y arquitectura de software.
Ver perfil y artículos → Ver perfil en LinkedIn ↗