Articulo de ayuda
Cómo Crear un Tema Hijo en WordPress
Aprende a crear un tema hijo en WordPress para personalizar diseno y codigo sin perder los cambios al actualizar el tema principal.
Introduccion
Un tema hijo o child theme permite personalizar un tema de WordPress sin modificar directamente sus archivos originales.
El tema original se llama tema padre. El tema hijo hereda su diseno y funcionalidad, pero puede anadir estilos, funciones y plantillas propias, de modo que al actualizar el tema padre tus cambios permanecen separados.
Realiza una copia de seguridad antes de empezar y, si la web esta en produccion, prueba los cambios en un entorno de ensayo.
Cuando conviene utilizar un tema hijo
Es apropiado cuando necesitas anadir CSS que quieres conservar como parte del tema, modificar plantillas PHP de un tema clasico, anadir funciones relacionadas con la presentacion, o sobrescribir plantillas de un tema de bloques.
No siempre es necesario: para unos pocos estilos puedes usar Apariencia > Personalizar > CSS adicional o las herramientas del Editor del sitio. Para funciones que no dependen del diseno, suele ser mejor un plugin propio.
Antes de empezar
Necesitaras acceso al administrador de archivos, FTP o SFTP, conocer el nombre exacto de la carpeta del tema padre y un editor de texto que guarde en UTF-8. La carpeta del tema padre esta dentro de wp-content/themes/; por ejemplo, si la ruta es wp-content/themes/twentytwentyfive/, el valor que utilizaras como Template sera twentytwentyfive, exactamente igual al nombre de la carpeta, no al nombre comercial que aparece en WordPress.
Paso 1: crear la carpeta del tema hijo
Dentro de wp-content/themes, crea una carpeta con minusculas, numeros y guiones, sin espacios ni caracteres especiales, por ejemplo wp-content/themes/mi-tema-hijo/. Solo style.css es imprescindible para que WordPress reconozca un tema hijo; functions.php se anade cuando necesitas cargar estilos o incorporar funciones.
Paso 2: crear el archivo style.css
Anade una cabecera como esta:
/*
Theme Name: Mi tema hijo
Theme URI: https://tudominio.com/
Description: Tema hijo para personalizaciones de la web.
Author: Tu nombre o empresa
Template: nombre-carpeta-tema-padre
Version: 1.0.0
Text Domain: mi-tema-hijo
*/
El campo fundamental es Template: nombre-carpeta-tema-padre, por ejemplo Template: twentytwentyfive. No escribas una ruta completa ni el nombre visible del tema; WordPress necesita el nombre exacto de la carpeta del tema padre. Despues de la cabecera puedes anadir tus estilos.
Paso 3: decidir como cargar los estilos
No existe un unico metodo valido para todos los temas: algunos cargan automaticamente los estilos del tema hijo; otros requieren encolarlos desde functions.php. Revisa primero la documentacion del tema padre.
Si necesitas cargar el estilo del hijo manualmente, crea functions.php con:
<?php
add_action( 'wp_enqueue_scripts', 'mihosting_tema_hijo_estilos' );
function mihosting_tema_hijo_estilos() {
wp_enqueue_style(
'tema-hijo-estilos',
get_stylesheet_uri(),
array(),
wp_get_theme()->get( 'Version' )
);
}
Si el padre solo carga su propia hoja de estilos, puedes cargar primero el estilo padre y despues el del hijo:
<?php
add_action( 'wp_enqueue_scripts', 'mihosting_tema_hijo_estilos' );
function mihosting_tema_hijo_estilos() {
wp_enqueue_style(
'tema-padre-estilos',
get_parent_theme_file_uri( 'style.css' )
);
wp_enqueue_style(
'tema-hijo-estilos',
get_stylesheet_uri(),
array( 'tema-padre-estilos' ),
wp_get_theme()->get( 'Version' )
);
}
No copies este bloque de forma automatica si la documentacion del tema indica otro procedimiento: cargar dos veces la misma hoja puede duplicar estilos o empeorar el rendimiento.
Paso 4: activar el tema hijo
Ve a Apariencia > Temas, localiza el tema hijo y pulsa Activar. Revisa la portada, las entradas, paginas, formularios y otras secciones importantes. El tema padre debe permanecer instalado (no tiene que estar activo), ya que WordPress necesita sus archivos para que el hijo funcione.
Como modificar plantillas en un tema clasico
Para sobrescribir una plantilla, localiza el archivo en el tema padre, copialo al tema hijo manteniendo la misma ruta relativa (por ejemplo tema-padre/single.php a tema-hijo/single.php) y modifica unicamente la copia del tema hijo. No copies archivos que no necesitas modificar: cada plantilla copiada deja de recibir automaticamente los cambios del tema padre y tendras que revisarla tras futuras actualizaciones.
Como personalizar un tema de bloques
Los temas de bloques pueden utilizar theme.json, plantillas HTML en templates/, partes de plantilla en parts/ y patrones en patterns/. Un tema hijo puede sobrescribir plantillas y partes colocando archivos con el mismo nombre y ruta (por ejemplo tema-hijo/templates/single.html), y tambien puede incluir su propio theme.json.
Ten en cuenta que algunos cambios realizados desde el Editor del sitio se guardan en la base de datos y pueden tener prioridad sobre los archivos. Si una plantilla no refleja tus cambios, revisa si existe una personalizacion guardada y utiliza la opcion de restablecerla cuando corresponda.
Como utilizar functions.php correctamente
El functions.php del tema hijo no sustituye al del tema padre: WordPress carga ambos. Puedes anadir funciones propias:
<?php
add_action( 'after_setup_theme', 'mihosting_configuracion_tema_hijo' );
function mihosting_configuracion_tema_hijo() {
add_theme_support( 'custom-logo' );
}
Evita copiar todo el functions.php del tema padre: puede producir funciones duplicadas y errores fatales (ver error 500 y pantalla blanca en WordPress). Utiliza prefijos unicos para tus funciones, clases y constantes, y evita nombres genericos.
Para organizar el codigo, puedes crear archivos adicionales (por ejemplo mi-tema-hijo/inc/personalizaciones.php) y cargarlos con require_once get_theme_file_path( 'inc/personalizaciones.php' );, que tiene en cuenta la jerarquia del tema hijo.
Buenas practicas
Haz los cambios en un entorno de pruebas, documenta que archivos has sobrescrito y por que, mantén el tema padre actualizado, revisa las plantillas copiadas despues de cada actualizacion importante, valida el codigo PHP antes de subirlo y mantén en un plugin las funciones que deberian seguir activas aunque cambies de tema.
Problemas frecuentes
El tema hijo aparece como danado
Revisa que style.css exista y que Template coincida exactamente con la carpeta del padre. Comprueba tambien que el tema padre este instalado.
La web pierde los estilos al activar el tema hijo
El tema hijo no esta cargando la hoja de estilos adecuada. Revisa la documentacion del tema padre y el codigo de wp_enqueue_style().
Mis cambios de CSS no se ven
Vacia la cache del plugin, servidor, CDN y navegador. Comprueba tambien la prioridad y especificidad de las reglas CSS.
Aparece un error fatal al activar el tema
Revisa functions.php: puede existir un error de sintaxis o una funcion con el mismo nombre que otra del tema padre o un plugin.
La plantilla copiada no se utiliza
Confirma el nombre, la ruta y la jerarquia de plantillas. En temas de bloques, revisa ademas si una version personalizada esta guardada en la base de datos.
Preguntas frecuentes
Puedo crear un tema hijo de otro tema hijo?
WordPress solo contempla de forma estandar dos niveles: tema padre y tema hijo.
Se pierde la configuracion al activar el tema hijo?
Algunas opciones pueden depender del identificador del tema y necesitar configurarse de nuevo. Haz una copia de seguridad y prueba primero.
Debo copiar todos los archivos del tema padre?
No. Copia solo los archivos que vas a modificar.
Un tema hijo mejora la seguridad?
No por si mismo. Su ventaja es separar personalizaciones y facilitar actualizaciones.
Conclusion
Un tema hijo es la forma correcta de conservar personalizaciones que dependen del tema sin editar sus archivos originales. Crea una carpeta, anade una cabecera valida en style.css, carga los estilos segun el funcionamiento del tema padre y copia unicamente las plantillas necesarias. Si el cambio no depende del diseno, valora colocarlo en un plugin para que siga funcionando al cambiar de tema.