Guía de solución

Cómo instalar un Child Theme de WordPress (paso a paso)

20 de mayo de 2026

Un child theme de WordPress es un tema que hereda el estilo y la funcionalidad de otro tema, llamado tema padre. Activar un child theme le dice a WordPress que use el padre para todo excepto los archivos que el hijo sobrescribe. El sentido completo: cuando el desarrollador del tema padre lanza una actualización (lo que ocurre regularmente, a menudo con parches de seguridad), tus personalizaciones sobreviven intactas. Sin un child theme, cada personalización que hagas al tema se borra en la próxima actualización. Con uno, tus cambios viven en una carpeta separada que las actualizaciones no tocan.

¿Por qué necesito un child theme en 2026?

Tres razones que no han cambiado en quince años:

  • Sobrevivir las actualizaciones del tema padre. Los desarrolladores de temas lanzan actualizaciones mensuales o más frecuentes. Cada actualización sobrescribe cada archivo de la carpeta del tema padre. Si editaste header.php o style.css directamente, tus ediciones se pierden. Un child theme tiene su propia carpeta que las actualizaciones nunca tocan.
  • Sobrescribir solo archivos específicos. Un child theme puede reemplazar selectivamente cualquier archivo del padre. ¿Quieres un footer.php personalizado? Colócalo en el child theme. ¿Quieres el mismo footer.php que el padre pero con un ajuste de CSS? Solo añade el CSS al style.css del hijo y deja footer.php en paz.
  • Añadir PHP personalizado sin forkear el tema. El functions.php del child theme se carga junto al del padre. Añade filtros, custom post types, acciones removidas, o cualquier PHP sin tocar el código del padre.

El enfoque "solo editaré el padre" se rompe la primera vez que el tema se auto-actualiza, lo cual en un sitio WordPress típico ocurre en cuestión de semanas. Usa un child theme.

¿Cuándo NO necesito un child theme?

Tres escenarios donde un child theme es la herramienta equivocada:

  • Si solo personalizas a través del Customizer o el Site Editor. Cambios de color, elecciones de fuente y ajustes similares hechos vía Apariencia, Personalizar (clásico) o el Site Editor (temas de bloques) se almacenan en la base de datos, no en archivos del tema. Sobreviven actualizaciones sin un child theme.
  • Si solo añades CSS personalizado. WordPress tiene un panel integrado de "CSS adicional" en el Customizer. Los pequeños ajustes de CSS viven ahí y persisten a través de actualizaciones. Un child theme es exagerado para añadir dos reglas de CSS.
  • Si usas un tema de bloques (FSE) y solo personalizas plantillas. Los temas Full Site Editing almacenan personalizaciones de plantilla en la base de datos, accesibles vía Apariencia, Editor. La necesidad de un child theme es mucho menor. Los temas de bloques todavía pueden beneficiarse de un child theme para PHP personalizado o overrides de theme.json, pero el caso común de "quiero mover el logo y cambiar el texto del footer" ya no requiere uno.

Si te encuentras editando archivos PHP, archivos de plantilla, o queriendo añadir más de unas pocas líneas de CSS, necesitas un child theme. Para todo lo demás en 2026, el Customizer o Site Editor es suficiente.

Método 1: instalar un child theme manualmente (5 minutos)

El child theme mínimo son dos archivos en una carpeta. Paso a paso:

Paso 1: crear la carpeta del child theme

Conéctate vía SFTP (o el administrador de archivos en tu panel de hosting) y navega a /wp-content/themes/. Verás carpetas para cada tema instalado, como twentytwentyfour/ o astra/. Crea una nueva carpeta junto a ellas. Convención de nombres: nombre del padre más -child. Si tu tema padre es Astra, nombra la carpeta astra-child.

Paso 2: crear style.css con la cabecera requerida

Dentro de tu nueva carpeta astra-child, crea un archivo llamado style.css. Ábrelo en un editor de texto y añade este bloque de comentario de cabecera:

/*
Theme Name: Astra Child
Theme URI: https://tusitio.com
Description: Child theme para Astra
Author: Tu Nombre
Author URI: https://tusitio.com
Template: astra
Version: 1.0.0
Text Domain: astra-child
*/

La línea Template es la única que debe coincidir exactamente: tiene que ser el nombre de la carpeta del tema padre (sensible a mayúsculas). Las otras líneas pueden decir lo que quieras; aparecen en Apariencia, Temas.

Paso 3: crear functions.php para enqueuear los estilos del padre

En la misma carpeta astra-child, crea functions.php:

<?php
add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
    wp_enqueue_style('child-style', get_stylesheet_uri(), ['parent-style']);
});

Esto se asegura de que el stylesheet del tema padre se cargue primero, luego el del hijo, de modo que tus personalizaciones sobrescriban al padre. Sin esto, el style.css del child theme está vacío y el sitio se carga sin estilos. Muchos tutoriales antiguos todavía recomiendan usar @import url('../astra/style.css'); en el style.css del hijo. No uses el enfoque @import en 2026. Es lento (fuerza una segunda petición HTTP antes de que se parsee cualquier CSS), ya no es recomendado por el códex de WordPress, y el enfoque de enqueue de arriba es el estándar moderno.

Paso 4: activar el child theme

Ve a Apariencia, Temas en el admin de WordPress. Verás tu nuevo child theme listado (puede mostrar una miniatura placeholder). Haz clic en Activar. Tu sitio debería verse idéntico que antes — mismas fuentes, mismo layout, mismos colores — porque el hijo hereda todo del padre.

Si el sitio se ve sin estilos, el enqueue en functions.php está mal. Verifica que la línea Template: en style.css coincida exactamente con el nombre de la carpeta del padre.

Método 2: usar un plugin de child theme (sin código)

Para usuarios que prefieren no tocar SFTP, los plugins automatizan la creación del child theme. Dos opciones confiables en 2026:

  • Child Theme Configurator. Gratuito, activamente mantenido, la opción más popular. Se instala en dos clics, crea el child theme desde cualquier padre activo, te deja copiar archivos del padre al hijo para editarlos a través de la UI del admin. La elección pragmática para la mayoría de los usuarios.
  • Generate Child Theme. Plugin más nuevo enfocado específicamente en temas de bloques. Útil si estás usando un tema Full Site Editing como Twenty Twenty-Four donde los patrones son diferentes.

Pasos del enfoque con plugin:

  1. Instala y activa el plugin.
  2. Ve a Herramientas, Child Themes (Child Theme Configurator) o su equivalente.
  3. Selecciona el tema padre.
  4. Haz clic en "Crear nuevo child theme".
  5. El plugin genera la carpeta, style.css y functions.php correctamente. Ve a Apariencia, Temas y activa.

El plugin se puede desactivar después de crear el child theme. El child theme en sí no depende del plugin.

¿Cómo personalizo el child theme una vez activo?

Tres categorías de personalización:

Personalizaciones CSS

Añade reglas CSS al style.css del child theme, debajo del comentario de cabecera. El CSS del hijo se carga después del padre, así que tus reglas sobrescriben a menos que el padre use !important o selectores con mayor especificidad.

/* En astra-child/style.css */
.site-title {
    font-family: Georgia, serif;
    color: #2c3e50;
}

.entry-content a {
    text-decoration: underline;
}

Overrides de plantillas

Para personalizar un archivo de plantilla (header, footer, layout de single post, etc.), copia el archivo del tema padre al child theme en el mismo path. WordPress entonces usará la versión del hijo.

Ejemplo: personalizar footer.php:

  1. Copia wp-content/themes/astra/footer.php a wp-content/themes/astra-child/footer.php.
  2. Edita la copia del hijo.
  3. Guarda. La próxima carga de página usa tu versión.

Los temas de bloques son diferentes: en lugar de archivos de plantilla PHP, usan archivos HTML en una carpeta templates/, y theme.json para estilos globales. La mecánica de override es la misma; copia el archivo del padre al hijo en el mismo path relativo.

Personalizaciones PHP

Añade filtros, acciones o código personalizado al functions.php del hijo — nunca al del padre. El functions.php del hijo se carga antes que el del padre, así que puede registrar filtros que el padre luego comprueba.

// En astra-child/functions.php

// Cambiar la URL del logo de login de WordPress
add_filter('login_headerurl', function () {
    return home_url();
});

// Deshabilitar emojis de WordPress
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

¿Cómo muevo mis ajustes del Customizer al child theme?

Punto de dolor común: configuraste colores, fuentes y widgets en el Customizer bajo el tema padre. Activar el child theme parece resetearlos.

La verdad: los ajustes del Customizer se almacenan por tema. Cada tema (padre e hijo son "temas" diferentes para WordPress) tiene sus propios ajustes. Para preservar tus ajustes:

  1. Bajo el tema padre, ve a Apariencia, Personalizar, haz clic en el ícono de engranaje y "Exportar" (algunos temas proveen esto; no todos). O usa un plugin como Customizer Export/Import.
  2. Activa el child theme.
  3. Vuelve al Customizer e importa el archivo.

Si tu tema no soporta exportación del Customizer, la alternativa es configurar manualmente los mismos ajustes bajo el child theme. Para widgets, WordPress 4.2+ provee un workflow "Widget Importer & Exporter" vía el menú Herramientas o vía plugins como Widget Importer Exporter.

¿Qué hay de los temas de bloques (Full Site Editing)?

Para temas de bloques (Twenty Twenty-Two en adelante, y temas modernos construidos sobre FSE), la estructura del child theme es ligeramente diferente. Los dos archivos mínimos se vuelven:

  • style.css con el mismo bloque de cabecera, pero Template: carpeta-tema-padre referenciando al tema padre de bloques.
  • theme.json en la carpeta del hijo. Este archivo sobrescribe el theme.json del padre. Incluye solo los ajustes que quieres cambiar; los valores del padre se usan para todo lo demás.

También puedes sobrescribir plantillas copiando archivos HTML de plantilla del padre desde templates/ y parts/ al child theme en el mismo path.

El Full Site Editor en el admin de WordPress puede leer overrides del child theme y te permite personalizar plantillas visualmente. Las personalizaciones hechas en el editor se almacenan en la base de datos y sobreviven actualizaciones del tema; solo necesitas el child theme para cosas que no puedes configurar a través del editor (como PHP personalizado en functions.php).

Errores comunes al instalar un child theme

  • Nombre Template: incorrecto en style.css. Si el valor no coincide exactamente con el nombre de la carpeta del tema padre (sensible a mayúsculas), WordPress trata al hijo como un tema roto. Lo que cuenta es el nombre de la carpeta, no el nombre de visualización.
  • Olvidar <?php al inicio de functions.php. El archivo se trata silenciosamente como texto, los estilos del padre no se encolan, y el sitio se carga sin estilos. Siempre inicia archivos PHP con <?php.
  • Usar @import en style.css para cargar el CSS del padre. Funciona pero es lento y desaconsejado. Usa el enfoque wp_enqueue_style en functions.php.
  • Copiar cada archivo del padre al hijo "por si acaso". No lo hagas. Copia solo los archivos que realmente quieras sobrescribir. Los archivos en el hijo que coincidan con el padre usarán la versión del hijo; los archivos solo en el padre usarán la versión del padre. Copiar en masa derrota el beneficio de mantenibilidad de un child theme.
  • Editar el child theme en un sitio en vivo sin staging. Una mala línea en functions.php pone el sitio en pantalla blanca. Para ediciones PHP no triviales, usa un entorno de staging o al menos un plugin de code-snippets que capture errores PHP antes de guardar.
  • Nombrar la carpeta del child theme con espacios. Atente a letras minúsculas y guiones. Espacios y caracteres especiales rompen la referencia Template: en algunos servidores.
  • Cambiar de tema padre sin eliminar el hijo. Un child theme referencia su padre por nombre. Si cambias a un tema padre diferente sin actualizar el hijo, el hijo se rompe. O elimina el hijo o actualiza su línea Template:.

¿Cómo actualizo un tema padre sin romper el hijo?

Este es el sentido completo de un child theme: las actualizaciones del padre no deberían romperlo. Tres escenarios:

  • Actualizaciones normales. Haz clic en "Actualizar" en el admin. La carpeta del tema padre se reemplaza; la carpeta del hijo no se toca. Verifica que el sitio todavía se vea bien.
  • Actualizaciones de versión mayor (1.x a 2.x). A veces las plantillas cambian significativamente. Si tu child theme sobrescribe plantillas, el override puede ahora referenciar funciones o hooks que ya no existen. Comprueba el changelog del tema padre antes de actualizaciones mayores. Prueba en staging.
  • Tema padre abandonado. Si el padre deja de recibir actualizaciones (parches de seguridad), tu hijo se queda en un tema vulnerable. La migración es a un tema padre mantenido. El child theme hace esto más fácil porque la mayor parte de tu CSS y PHP personalizado puede reutilizarse; solo los overrides de plantilla necesitan rehacerse.

¿Dónde encuentro qué archivos del tema sobrescribir?

La jerarquía de plantillas de WordPress documenta qué archivo se carga para qué tipo de contenido. Comunes:

  • header.php — parte superior de cada página
  • footer.php — parte inferior de cada página
  • single.php — layout de single post
  • page.php — layout de página única
  • archive.php — archivos de categoría/etiqueta/autor
  • functions.php — personalizaciones PHP
  • style.css — CSS

Para temas de bloques, los equivalentes viven en templates/ como archivos .html y en theme.json para estilos.

Qué verifica InspectWP

InspectWP detecta si un tema es un child theme vía el campo Template: en style.css. La sección WordPress del reporte lista tanto el tema padre como el child theme, con versiones y fechas de última actualización. Un sitio ejecutando un child theme con un padre que no se ha actualizado en más de un año se marca porque el padre probablemente tiene vulnerabilidades sin parchear. Un sitio ejecutando un child theme desactualizado sobre un padre actualizado es informativo; normalmente significa que el desarrollador que configuró el sitio dejó de mantener el child pero el padre sigue recibiendo parches de seguridad a través del mantenedor del padre. La recomendación pragmática es mantener ambos actualizados, documentar las personalizaciones del child theme en su cabecera style.css, y preferir child themes sobre ediciones directas incluso en configuraciones de hosting gestionado donde las actualizaciones automáticas de tema son comunes.

Analiza tu sitio de WordPress ahora

InspectWP analiza tu sitio de WordPress en busca de problemas de seguridad, SEO, cumplimiento del RGPD y rendimiento, gratis.

Analiza tu sitio gratis