Si tienes una web hecha en WordPress, entonces necesitas saber qué es un tema hijo o child theme. Si no lo sabes, si te suena a chino, entonces quédate conmigo unas líneas más. Al menos, mientras te explico por qué son importantes.
Después, cuando veas por qué es esencial que una web en WordPress trabaje sobre una plantilla hijo, seguro que te quedas hasta el final. Porque no solo voy a contarte qué son y por qué las necesitas, sino también cómo puedes crear uno.
1. Qué es un Child Themes en WordPress
El término child theme, también conocido como tema hijo o plantilla hijo (aunque es mucho más frecuente leer el término en inglés), hace referencia a un tipo especial de plantilla. Estas plantillas se llaman así porque dependen de un padre. De una plantilla superior de la que reciben toda la información importante que define a la plantilla.
En WordPress, como ya sabrás, el aspecto de una página web se controla a través de las plantillas o themes. Cada plantilla tiene unas características que la hacen única (elementos de menú, barras laterales, imágenes de cabecera, tipografía, pié de página…) y permiten al webmaster personalizar su página web.
Por ejemplo, esta página web, la página de TodoBrick (mi comunidad de LEGO) o mi academia online de Scrivener son diferentes porque sus plantillas son diferentes. Por detrás, como todos los WordPress, las páginas son iguales. O casi.
Tómate un respiro
Cada día mando un email que te enseña a explotar lo que llevas dentro para que vivas igual de satisfecho el lunes por la mañana que el viernes por la tarde:
2. Entonces, ¿para qué sirve un Child Theme?
Aunque la respuesta a esta pregunta se entenderá mejor después de explicar ciertas características, el resumen de para qué sirve un child theme WordPress es las iguiente:
Los child themes lo que hacen es separar las funcionalidades principales del aspecto final de una web, dejando las funcionalidades y el aspecto general en la plantilla padre y llevándose las personalizaciones a la plantilla hijo.
3. Insisto, ¿por qué es importante un child theme?
Ahora que ya sabemos, más o menos, qué es un child theme, déjame contarte qué es lo que pasa en realidad en tu web cuando actualizas una plantilla o un plugin.
Sí, actualizar, esa acción tan cotidiana y tan sencilla que mejora y soluciona problemas a la que muy pocos dan la importancia que deberían.
Pues bien, actualizar en WordPress no es más que borrar lo viejo y cargar lo nuevo. No es un sistema elaborado que busca los archivos modificados y los actualiza, no, es un sistema que quita lo anterior y pone lo nuevo.
Cualquier modificación que hayas hecho en la plantilla, cualquier CSS, plantilla o…, lo que sea que hayas querido cambiar se perderá cuando actualices tu theme.
¿Ves por qué es importante tener un child theme en WordPress? Los child themes se crean para separar la plantilla original de las modificaciones. Porque tú, en tu web WordPress con child theme, cambiarás el CSS (o el HTML, PHP o lo que te apetezca) dentro del child theme, dejando intacta a la plantilla padre.
Así, cuando llegue el momento de actualizar, el padre se actualizará normalmente (sobreescribiéndolo todo), mientras que la plantilla hijo seguirá exactamente igual que antes.
Pero sirve para mucho más:
3.1. Actualizaciones seguras
Como primer punto positivo de un child theme, tenemos la protección ante actualizaciones.
Nos permitirá personalizar nuestra plantilla y asegurarnos de que siempre tengamos la versión más actualizada de la misma.
3.2. Protección ante fallos
Otra ventaja, más orientada quizá a los que somos desarrolladores, es que un child theme no posee, a priori, funcionalidades propias. Eso significa que toda la funcionalidad esencial está en la plantilla padre, por lo que no importa que te olvides de programar o diseñar algún archivo en tu child theme.
¿Por qué? Porque si el child theme no tiene algún elemento, el padre se encargará de suministrarlo.
3.3. Ampliación y mejora fácil del theme
Cuando veamos cómo crear un child theme, entenderás estos dos puntos mucho mejor. Ahora, lo importante es que sepas que la construcción de child themes es tan fácil como selectiva.
Puedes crearlo vacío (idéntico al padre) e ir ampliando cosas poco a poco. Un poco de CSS por aquí, una plantilla para el blog por allá, una nueva portada… Como ya tienes al padre suministrando toda la información, puedes ir construyendo poco a poco.
3.4. Facilidad de vuelta atrás
Si algo sale mal en un child theme, siempre podrás deshacer el cambio o, en su defecto, borrar el archivo erróneo o la plantilla entera. Como tu funcionalidad esencial está en el parent theme, no lo perderás todo si algo sale mal.
4.¿Siempre hay que tener un child theme?
La respuesta corta es que no. Si tienes una web básica, con una plantilla que no incluye funciones especiales (por ejemplo, las plantillas estándar de WordPress) y una perspectiva de futuro de que la web no se complique, entonces no tendrías por qué tener un child theme.
Sin embargo, tenerlo te hará más fácil ampliar tu negocio en el futuro. Quizá hoy no necesites crear plantillas de página específicas, un segundo blog dentro de la web o cambiar el aspecto CSS de tu theme. Pero, ¿puedes asegurar que mañana no vayas a necesitarlo?
Además, aunque todas las plantillas pueden convertirse en padres, no todas están preparadas para ser buenos padres. Como en la vida real. Algunas, como Genesis Framework, están más que preparadas. Otras, que prefiero no mencionar, están destinadas a no tener descendencia.
5. ¿Cuándo crear un child theme?
Estas son las situaciones en las que creo necesario que instales un child theme, o que pidas a alguien que lo haga por ti. Hay más y, como digo, tenerlo nunca es mala idea, pero si te encuentras en alguna de estas circunstancias, considera la opción de crear una plantilla hijo.
5.1. Modificaciones en la plantilla
Escribo este artículo motivado por uno de los últimos proyectos en los que estoy trabajando. Normalmente, la gente me contrata para diseñar una web entera, pero hay ocasiones en las que me piden que extienda las funciones de su web o modifique cosas de sus plantillas.
Añadir barras laterales, quitarlas, cambiar los menús de sitio, cambiar colores, formularios, botones… Cualquier cosa que puedas imaginarte.
En esas circunstancias es esencial tener un child theme instalado. Porque todo el trabajo del desarrollador se irá a la porra si tú pulsas el botón de actualizar y no estáis trabajando sobre una plantilla hijo.
Si quieres modificar tu plantilla o crees que querrás hacerlo, trabaja sobre un child theme.
5.2. Nuevas funcionalidades en tu plantilla
Al igual que antes, hay veces en las que no queremos cambiar nada de lo que tiene la plantilla, sino que queremos añadir cosas nuevas. Por ejemplo, instalamos una tienda de WooCommerce y queremos personalizar las plantillas de producto.
En ese caso, como en muchos otros, WooCommerce nos pedirá que creemos una carpeta dentro de nuestro theme con lo que queremos modificar. Pero, recuerda: carpeta dentro del theme implica que, al actualizar, desaparecerá.
5.3. Webs con posibilidad de crecimiento
Si hablamos de una página web tipo blog personal, en la que solo escribes tus pensamientos y poco más, es probable que no necesites instalar un child theme. Pero si crees que ese blog, esa web, tienen perspectivas de crecimiento. Si crees que en algún momento la podrás monetizar, crear algo especial (una revista, una tienda, un membership site…) o llevarlo a un nivel superior al de «yo solo escribo», entonces quizá te conviene tener un child theme instalado.
5.4. Cambias mucho el aspecto de tu web
Hay webs en las que cambio el aspecto casi cada año. Si eres como yo y te gusta modificar mucho tu web, te interesa tener una buena plantilla padre (un buen framework) que tenga disponibilidad de muchos child themes diferentes ya configurados.
O, como hago yo, una tecnología que te permita crear nuevos child themes desde cero de forma más o menos fácil y cómoda.
5.5. Tienes una plantilla de ThemeForest
Si sigues esta web desde hace tiempo, sabras que nunca recomendaré ThemeForest ni a mi peor enemigo. Sus plantillas me han causado tantos problemas a mí y a mis clientes y están tan lejos de las buenas prácticas de WordPress, que siempre intentaré que todo el mundo se aleje de ellas.
Sin embargo, si tienes la desgracia de poseer una o te da igual lo que opine yo (algo muy respetable, por cierto), entonces te recomiendo encarecidamente que le instales un Child Theme.
Porque si la actualización de una plantilla normal puede acarrear problemas, no te quiero ni contar los problemas que puede causar la actualización de una plantilla de ThemeForest.
6. Casos de child themes especiales: los frameworks
Como decía antes, hay plantillas padre que están muy bien preparadas para tener child themes. Este tipo de plantillas suelen estar construidas de tal forma que, no solo puedes crear un tema hijo con facilidad, sino que te permiten modificar las funcionalidades del padre de formas fáciles y rápidas.
Fáciles y rápidas a través de código o, como algunos casos, a través de plugins.
A estos súper padres se los conoce como frameworks. Son estructuras diseñadas, creadas y preparadas para que trabajes con child themes. Para que, como yo, programes lo que te apetezca.
El más famoso y más utilizado en el mundo WordPress es Genesis Framework, de Studio Press. Es el framework en el que yo construyo todas mis webs y las de mis clientes.
¿Un ejemplo de por qué es increíble trabajar con un framework? Si yo quiero que una página, o grupo de páginas, no tengan barra lateral, puedo escribir esto:
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_full_width_content' );
Y saldrán sin barra lateral. O escribir esto:
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_content_sidebar' );
Y tener las páginas con barra lateral. El dónde escribir eso, lo dejo para otro artículo.
Es un ejemplo sencillo, pero que da muestra de la potencia de utilizar un framework para construir plantillas.
7. ¿Cómo se crea un child theme?
Ahora que ya sabemos qué son y por qué son importantes, veamos cómo se crean los child themes.
Porque sí, hay varias maneras de hacerlo.
7.1. Pídeselo al creador del theme
La gran mayoría de plantillas premium que hay en el mercado, suelen venir con dos plantillas en su interior: la plantilla «normal» y un child theme.
Antes de hacer nada especial, busca entre las descargas de tu plantilla o en su página de soporte a ver si disponen de los archivos necesarios para instalar una versión child de su plantilla. Si no lo tiene, entonces escribe al equipo de soporte.
En el 99% de los casos el equipo de soporte tendrá ya una guía preparada para explicarte cómo instalarla.
Lo normal, una vez posees el archivo zip (y si tienes la carpeta, comprímela en zip) con el child theme, no tienes más que instalarlo como una plantilla normal. El único requisito ahora es que no puedes borrar la plantilla padre ya que, como recordarás, es la plantilla padre la que posee toda la funcionalidad.
7.2. Crear plantilla hijo manualmente
Otra opción es crear el child theme a mano. No es difícil, pero exige que o bien sepas entrar a los archivos de tu web (vía FTP o CPanel) o que crees esos archivos en tu ordenador y los subas como una plantilla nueva.
En cualquier caso, estoy elaborando un manual detallado, demasiado grande para entrar en este post, que tendrás disponible en breve.
7.3. Utilizar un plugin
Ya sabes que no me gusta instalar plugins si se puede resolver manualmente el problema, pero entiendo que para una ocasión puntual como esta no viene mal.
El plugin que puedes utilizar se llama Child Theme Configurator y lo puedes encontrar aquí.
Está actualizado, lo usa muchísima gente y es muy intuitivo de usar. De hecho, su creador nos ha dejado una guía paso a paso dentro de la página del plguin:
8. En resumen
No dejes que una actualización o un mal cambio rompan el diseño de tu web. Prepárate antes de que los fallos o los desarrollos complejos empiecen (y ahórrate algo de dinero si lo subcontratas) creando un child theme de tu plantilla.
Como has visto, es muy útil tener uno y te permite seguridad y cierta flexibilidad que no tienes con las plantillas normales. Además, su creación no es demasiado compleja.
¡Sé un buen padre y ten un child theme!