Otra vez con palabras raras. ¿Que es esto de Child Theme? ¿Has comprado un template de Wordpress y no sabes si instalar el original o el Child Theme? ¿Cada vez nos lo ponen más complicado o realmente tiene una parte buena utilizar un Child Theme?.
Creo no ser el primer diseñador web que al abrir con ilusión un nuevo template recién descargado, descomprimirlo e indagar un poco me he encontrado con que en la primera carpeta aparece un nuevo participante en la fiesta. El «Child Theme», a priori lo que me sugiere es tema hijo y a mi mente vienen asociaciones como que puede ser una versión de prueba, o una versión incompleta, pero a nivel profesional no hay lugar a especulaciones así que he hecho lo que haría cualquier hijo de buen cristiano y me ha ido a preguntarle al todopoderoso Google. ¿Qué narices es un Child Theme?.
En ese momento me doy cuenta de mi ignorancia al ver que tropecientos programadores, diseñadores y expertos en marketing digital le han dedicado un hueco en sus blogs. Pero al leer unos cuantos para contrastar informaciones la verdad es que todo me cuadra.
¿Qué es realmente un Child Theme?
Un Child Theme es lo que llevamos haciendo toda la vida, es decir, coger un template e ir directamente a la carpeta de css a reventarlo todo para adaptarlo a las necesidades de cada proyecto sin alterar las funciones originales del tema. En el fondo no deja de ser una réplica del tema original que condensa todo en un archivo de .css y que no toca para nada el funcionamiento del theme original que no lo altera en lo más mínimo.
Cosas buenas de los Child Themes
Un Child Theme nos puede ser de gran ayuda en el caso de que queramos actualizar nuestro theme (actualizar los themes al momento en que tengan una nueva versión) ya que la actualización no afectará para nada los cambios que hayamos hecho a nivel de css.
En algunos themes muy actuales y de alta calidad en su parte interna tienen un espacio para insertar líneas de código css que se insertan automáticamente en la carpeta principal de .css y que cogen prioridad respecto a sus líneas de código originales. En el fondo eso es muy parecido al Child Theme, ya que al actualizar al theme ese espacio se mantiene intacto o bien siempre podemos tener una copia de esas lineas que hemos ido insertando y volverlas a pegar una vez actualizado el theme.
Cosas malas de los Child Themes
Los Child Themes ralentizan el tiempo de carga ya que realiza una llamada al tema padre y eso le suma más acciones al cargar una página lo que seguro que puede afectar algo a nuestro SEO (ya sabemos que el tiempo de carga es un requisito importante para Google).
Otro inconveniente es que si no eres un desarrollador experto puede ser una tarea faraónica intentar entender todo lo que sucede de forma inusual. Recordemos que cada plantilla tiene sus rarezas y peculiaridades.
¿Cómo funciona técnicamente?
Lo primero que tenemos que hacer es ir a nuestro ftp dentro de la carpeta wp-content/themes y añadir una nueva carpeta que se llame igual que la original pero añadiendo -child al final, por ejemplo si creamos un Child Theme para la plantilla Twentyone la carpeta child se llamará twentyone-child.
En la carpeta añadimos un archivo de css que se llame style.css que contenga una cabecera como esta en la que indiques cual es el tema padre y en nombre del tema hijo.
/* Theme Name: Twenty One Child Theme URI: http://example.com/twenty-one-child/ Description: Twenty one Child Theme Author: John Doe Author URI: http://example.com Template: twentyone Version: 1.0.0 Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready Text Domain: twenty-one-child */ @import url("../twentyone/style.css"); /* =Aquí empieza la personalización de tu tema -------------------------------------------------------------- */
El otro archivo que se tiene que crear es un functions.php en la misma carpeta raíz de tu Child Theme. En principio si quieres cambiar algo más que las hojas de estilos (css) el tema hijo también puede hacerlo. Simplemente coloca un archivo con el mismo nombre y pega la función que quieres modificar. La función hará exactamente el mismo trabajo desde ahí, con la ventaja de que no será afectada por próximas actualizaciones del tema padre. No hace falta copiar todo el contenido del original, solo las líneas específicas.
<?php //Etiqueta PHP de inicio // Función a nuestro gusto que queramos incluir function favicon_link() { echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />' . "\n"; } add_action( 'wp_head', 'favicon_link' ); ?> //Etiqueta PHP de cierre
Yo no uso Child Themes a no ser que quiera reventar del todo una plantilla, en tal caso siempre es mejor buscar otra. Pero entiendo la parte buena de los Child Themes y hago lo mismo pero en el theme original, es decir, edito todo lo que necesite de los css y me creo un archivo con todas las modificaciones que voy haciendo en cada carpeta, luego cuando actualizo la plantilla solo tengo que entrar en cada archivo y pegar el código. Normalmente y si lo hemos hecho bien cómo máximo editas 3 ficheros que son 5 minutos.
Si quieres ampliar esta información te recomiendo ir a la fuente original de Wordpress haciendo clic aquí.