Creación de un tema hijo en WordPress

Desarrollo, Frontend, WordPress

Cuando nos disponemos a hacer una página web con un tema de WordPress y tenemos claro que vamos a hacer modificaciones sobre éste para adaptarlo a nuestras necesidades, la mejor forma de hacerlo es a través de un tema hijo. Un tema hijo básicamente lo que hace es heredar todo lo que tiene el padre y añade cosas nuevas, modificaciones, ya sean en plantillas o en estilos o código JavaScript, que redefinen el tema principal.
Para la creación de un tema hijo en WordPress haremos lo siguiente:

Nueva carpeta para el tema hijo

Crearemos una carpeta en el directorio wp-content/theme que normalmente llevará el nombre del tema padre seguido de algo como ‘-child’ o ‘-child-theme’.

Estilos del tema hijo

En la nueva carpeta del tema hijo creamos un archivo style.css y en él añadimos el siguiente código:
/*
Theme Name: Mitema Child
Theme URI: http://mitemaurl.com/
Description: Child Theme for Mitema
Author:
Author URI:
Template: mitema
Version: 1.0
*/

@import url("../mitema/style.css");

/* =Theme customization starts here
-------------------------------------------------------------- */

Aquí hay que adaptar y definir bien:
Theme name: el nombre que le daremos al tema hijo que estamos creando (que sea distinto del tema padre).
Template: el nombre del tema padre, tal cual aparece en su carpeta correspondiente.
@import: aquí hay que indicarle la ruta del archivo .css del tema padre.

Functions.php

Con el paso anterior ya podríamos empezar a hacer modificaciones en los estilos del tema hijo. Sin embargo, si necesitáramos ir más allá y, por ejemplo, modificar las traducciones, tendríamos que añadir código PHP en el archivo functions.php. Si lo hiciésemos en el tema padre, sería código que podría perderse tras una actualización. Por lo que debemos crear un archivo nuevo functions.php dentro de la carpeta del tema hijo. En este nuevo archivo no hay que añadir nada antes de empezar a editarlo, simplemente se puede empezar a volcar ahí el código PHP que vayamos necesitando. Lo que hace WordPress es cargar el código que hay en functions.php del tema padre y luego el del hijo y, si encontrara alguna función que se igual en el hijo, prioriza el código que hay en el functions.pho de éste (por lo que se pueden sobreescribir funciones del tema padre en el hijo).

Plantillas

¿Qué pasa si queremos modificar la cabecera, el pie o la página de archivo o de post del tema padre para cambiar su estructura? Con un tema hijo en WordPress es muy sencillo, bastará con copiar la plantilla correspondiente (footer.php, header.pho, etc) en la carpeta del tema hijo y hacer las modificaciones necesarias en esa copia. Es importante mantener la estructura de carpetas, es decir, si la template que queremos modificar no está dentro del directorio raíz del tema padre, si no que se encuentra dentro de una carpeta (por ejemplo dentro de mitema/templates/templateX.php), tendremos que replicar esta estructura de carpetas en el tema hijo. Por lo que en la carpeta del tema hijo tendremos que crear la carpeta ‘templates’ y dentro situar la copia.

Con estos pasos ya habremos terminado con la creación de un tema hijo en WordPress y estamos listos para empezar a adaptarlo a nuestras necesidades.