DICCIONARIO · T

Tema hijo WordPress

Un tema hijo de WordPress (child theme) es un tema que hereda plantillas, estilos y funciones de otro tema, el tema padre, y solo contiene los archivos que modificas. Se crea con una carpeta y un style.css cuya cabecera Template apunta al padre, y permite personalizar la web sin perder los cambios al actualizar el tema padre.

Germán Gutiérrez Escrito por 6 min de lectura
Ficha rápida
En inglés
Child theme
Archivo imprescindible
style.css con las cabeceras Theme Name y Template
Cabecera Template
Nombre exacto de la carpeta del tema padre, por ejemplo twentytwentyone
Orden de carga de functions.php
El del hijo se carga justo antes que el del padre; se ejecutan los dos
Temas de bloques
El theme.json del hijo se combina con el del padre y tiene prioridad sobre él

≡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
Dónde hacer cada tipo de cambio en WordPress

03 Cómo crear un tema hijo paso a paso

  1. 1

    Crea la carpeta

    En wp-content/themes, crea una carpeta con un nombre sin espacios, por ejemplo twentytwentyone-hijo.

  2. 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. 3

    Crea el functions.php

    Úsalo para cargar las hojas de estilo con wp_enqueue_style y para añadir tus funciones.

  4. 4

    Añade una captura (opcional)

    Un archivo screenshot.png en la carpeta hace que el tema se identifique en Apariencia > Temas.

  5. 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. 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.

Ejemplo · Cabecera mínima del style.css

/*
Theme Name: Twenty Twenty-One Hijo
Template: twentytwentyone
Version: 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.

Ejemplo · functions.php del tema hijo

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

01

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.

02

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.

03

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.

04

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

Germán Gutiérrez

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 en LinkedIn ↗

Términos relacionados

Ver todos los términos →
P Parent theme Un parent theme (tema padre) es un tema de WordPress completo y autónomo del que otro tema, el child theme o tema hijo, hereda plantillas, estilos y funciones. Permite personalizar una web en el tema hijo y seguir actualizando el tema padre sin perder los cambios, algo clave para el mantenimiento y la seguridad. W WordPress WordPress es un sistema de gestión de contenidos (CMS) libre y gratuito, escrito en PHP, con el que se crean webs, blogs y tiendas online sin programar cada cambio. Nació en 2003 y hoy mueve el 40,2 % de todas las webs del mundo, según W3Techs. Se amplía con temas y plugins y se instala en tu propio hosting. P PHP PHP es un lenguaje de programación de código abierto que se ejecuta en el servidor y está pensado para crear páginas y aplicaciones web dinámicas. Rasmus Lerdorf lo creó en 1994 y hoy lo usa cerca del 70 % de las webs cuyo lenguaje de servidor se conoce, entre ellas todas las hechas con WordPress y con Laravel. C CSS CSS (Cascading Style Sheets, «hojas de estilo en cascada») es el lenguaje de estilos que define cómo se presentan los documentos HTML: colores, tipografías, espacios, maquetación y adaptación a cada pantalla. No es un lenguaje de programación, sino de presentación; es un estándar del W3C que interpretan todos los navegadores y separa el diseño del contenido. G Gutenberg Gutenberg es el editor de bloques de WordPress: el sistema con el que se crean entradas, páginas y, con un tema de bloques, la web completa, montando cada párrafo, imagen o botón como un bloque independiente. Llegó con WordPress 5.0 el 6 de diciembre de 2018 y sustituyó al editor clásico como editor por defecto. H Hosting WordPress Un hosting WordPress es un alojamiento web preparado para ejecutar WordPress: cumple sus requisitos oficiales de PHP, MySQL o MariaDB y HTTPS, y suele añadir caché, copias y actualizaciones pensadas para este CMS. Puede ser compartido, que tú administras, o gestionado, en el que el proveedor se ocupa del mantenimiento técnico.