Tabla de Contenidos

Crear un Chid Theme


Un tema hijo o child theme se usa para evitar perder los cambios hechos en tu theme cuando lo actualices. Sigue leyendo para aprender a crearlo.

Un child theme es un tema que utiliza los archivos e información de un «tema padre», es decir, del tema que estás usando ahora mismo en tu web. Pero además tiene la capacidad de pasar por encima de él.

#1 Crear la carpeta del child theme

El primer paso es crear una carpeta dentro de wp-content/themes con el nombre del theme hijo. Puede ser el nombre que quieras aunque tendría sentido que tuviese relación con el tema padre.

#2 Crear la hoja de estilos (style.css) dentro del child theme

Crea un archivo style.css dentro de la carpeta del theme hijo.

Copia y pega las siguientes líneas en la nueva hoja de estilos de tu theme hijo.

/*
Theme Name: A Theme Hijo
Theme URI: http://loquesea.es
Version: 4.0
Description: Tema hijo de A theme
Author: Tu
Author URI: http://loquesea.es
Template: A-Theme
*/
 
/*----------------- Cambios a partir de aquí -------------------------------*/

Partes importantes que debes editar.

El nombre del template es muy importante porque dará a tu child theme el mismo aspecto que tiene el theme padre.

Los demás datos son sólo informativos y puedes poner lo que quieras.

#3 Crear archivo functions.php e importar estilos del tema padre

Debes crear un archivo llamado functions.php dentro de la carpeta de tu child theme y escribir las siguientes líneas.

<?php
function my_theme_enqueue_styles() {
 $parent_style = 'parent-style'; // Estos son los estilos del tema padre recogidos por el tema hijo.
 wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
 wp_enqueue_style( 'child-style',
 get_stylesheet_directory_uri() . '/style.css',
 array( $parent_style ),
 wp_get_theme()->get('Version')
 );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

Y ya está. Ve al menú de Apariencia > Temas de tu web y verás tu nuevo y reluciente child theme (aunque sin imagen destacada. Revisa el punto 5 de este tutorial para añadirla).

#4 Añadir estilos en el theme hijo

Ahora puedes añadir estilos a tu child theme. Los estilos se heredan del tema padre pero si escribimos clases personalizadas en el child theme se cargarán antes que las del padre.

Vamos a ver un ejemplo cambiando el color de los links a naranja.

/*
Theme Name: A Theme Hijo
Theme URI: http://loquesea.es
Version: 4.0
Description: Tema hijo de A theme
Author: Tu
Author URI: http://loquesea.es
Template: A-Theme
*/
 
/*----------------- Cambios a partir de aquí -------------------------------*/
/* Poner los links en naranja */
a { text-decoration: none; color: #EFB871; }
a:hover { text-decoration: underline; }

#5 Añadir funciones en el child theme

WordPress da prioridad al archivo functions.php del tema hijo y después carga las funciones del tema padre.

No tienes más que añadir las funciones que no quieras que se pierdan con una actualización del theme padre.

Vamos a ver un ejemplo con una función muy típica: crear un widget.

<?php
/* Código para crear un widget */
if (function_exists('register_sidebar')) {
        register_sidebar(array(
            'name' => 'Sidebar Widgets',
            'id'   => 'sidebar-widgets',
            'description'   => 'These are widgets for the sidebar.',
            'before_widget' => '<div id="%1$s" class="widget %2$s">',
            'after_widget'  => '</div>',
            'before_title'  => '<h2>',
            'after_title'   => '</h2>'
        ));
    }

De esta forma, WordPress cargará esta función del theme hijo y el resto de funciones del theme padre.

#6 Paso extra: añade una imagen destacada a tu theme hijo

Para que tu child theme tenga una imagen destacada cuando vayas al menú de Apariencia > Temas en tu panel de administración de WordPress sólo tienes que arrastrarla a la carpeta de tu child theme.

Lo único que debes tener en cuenta es que el nombre de la imagen debe ser screenshot.png

Si quieres puedes copiar y pegar la imagen que viene en la carpeta del theme padre.