Tutoriales WordPress

Cómo crear un tema hijo en WordPress (clásico y de bloques)

Publicado: 2 min de lectura
Contenido de esta guía
  1. Cuándo necesitas un tema hijo
  2. Paso a paso
  3. El archivo style.css
  4. El archivo functions.php (temas clásicos)
  5. El caso de los temas de bloques
  6. Errores comunes

Un tema hijo de WordPress es un tema que hereda el diseño y las funciones de otro, llamado tema padre, y guarda solo tus modificaciones. Sirve para personalizar plantillas, estilos o funciones sin perder esos cambios cuando el tema padre se actualiza. Crearlo toma unos minutos: una carpeta, un style.css y, en temas clásicos, un functions.php.

Cuándo necesitas un tema hijo

Si solo vas a cambiar colores, tipografías o agregar unas pocas reglas de CSS, no lo necesitas: usa las opciones del editor del sitio (temas de bloques) o el CSS adicional del personalizador (temas clásicos).

Paso a paso

  1. Identifica la carpeta del tema padre

    Entra a wp-content/themes y anota el nombre exacto de la carpeta del tema que usas, por ejemplo twentytwentyfive. Ese nombre, no el nombre comercial, es el que necesitas.

  2. Crea la carpeta del tema hijo

    Dentro de wp-content/themes crea una carpeta nueva, por ejemplo twentytwentyfive-hijo, sin espacios ni tildes.

  3. Crea el archivo style.css

    Dentro de esa carpeta crea style.css con la cabecera que verás más abajo. La línea Template debe coincidir exactamente con la carpeta del tema padre.

  4. Agrega functions.php si el tema es clásico

    En temas clásicos, crea también functions.php para cargar los estilos del padre. En temas de bloques normalmente no hace falta.

  5. Activa el tema hijo

    Ve a Apariencia › Temas y activa el tema hijo. Revisa el menú, la portada y algunas páginas: deberían verse igual que antes.

El archivo style.css

Esta es la cabecera mínima. Cambia los valores por los tuyos; la línea indispensable es Template:

/*
Theme Name:   Twenty Twenty-Five Hijo
Template:     twentytwentyfive
Description:  Tema hijo de Twenty Twenty-Five
Version:      1.0
Text Domain:  twentytwentyfive-hijo
*/

Debajo de la cabecera puedes agregar tus propias reglas de CSS.

El archivo functions.php (temas clásicos)

En los temas clásicos, el tema hijo debe cargar la hoja de estilos del padre. Este es el código recomendado:

<?php
add_action( 'wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'tema-padre',
        get_template_directory_uri() . '/style.css'
    );
} );

Algunos temas ya cargan sus estilos de otra forma; si al activar el tema hijo ves el diseño duplicado o algo cambia, revisa la documentación del tema padre.

El caso de los temas de bloques

En un tema de bloques, el tema hijo suele necesitar solo el style.css con la línea Template. Si quieres cambiar colores, tipografías o espaciados de forma ordenada, agrega un archivo theme.json en el tema hijo con solo los valores que quieres modificar; el resto se hereda del padre. Las plantillas que edites desde el editor del sitio se guardan en la base de datos y no se pierden al actualizar.

Errores comunes

ProblemaCausa
WordPress dice que falta el tema padreEl valor de Template no coincide con la carpeta del padre (revisa mayúsculas y guiones)
El sitio se ve sin estilosEn un tema clásico falta cargar el CSS del padre en functions.php
Pantalla en blanco al activarloUn error de sintaxis en functions.php; revisa la guía de pantalla blanca

Guía revisada con WordPress 7.1.

Preguntas frecuentes

¿Pierdo mis ajustes al activar un tema hijo?

Algunos ajustes del personalizador, menús y widgets se guardan por tema, así que puede que tengas que volver a asignarlos. Tu contenido no se pierde. Por eso conviene crear el tema hijo al comienzo.

¿Necesito un tema hijo para agregar CSS?

No. Si solo vas a agregar algunas reglas de CSS, puedes usar la opción de CSS adicional del personalizador en temas clásicos o los estilos del editor del sitio en temas de bloques.

¿Se actualiza el tema hijo?

El tema hijo no recibe actualizaciones porque es tuyo. El que se actualiza es el tema padre, y tus cambios siguen aplicándose encima.