Hoy viene a MasQueUnaWeb un paisano del que he aprendido mucho leyendo su blog. Victor Campuzano es un gran blogger, creativo y humilde.
Cuando aún ni lo conocía, ya me transmitía ese buen rollo que tiene. (ser de murcia ayuda, ¿no axo? jajaj)
Poco puedo decir de este hombre, un crack en toda regla. Está entre los mejores y es una alegría el haberlo conocido.
Y más aún cuando le propuse escribir un post en el blog, y me contesto al instante que se lo iba a añadir a su lista de tareas y me explicó un poco la idea que tenía.
La sorpresa fue que a la semana ya me estaba mandando un post!
Y menudo post 😮
Bueno, te dejo con él, que me pongo pesado!
¡Hola! Que ilusión escribir en esta bitácora, madre mía. La verdad es que cada vez que me invitan a escribir en “casa ajena” me lleno de ilusión pero, si me lo permites, también de un poquito de miedo.
No puedo negarlo. En tu propio blog pues como que ya lo tienes dominado pero cuando sales ahí fuera no puedes evitar pensar en si gustará lo que haces y en si será apropiado para ti, que lees habitualmente este blog.
Espero que si. Voy a intentar que si. ¿Vale?
Como Alex ya me ha presentado más arriba, voy a entrar directamente en materia. En concreto, hoy vamos a hablar de los child themes de Wordpress. Al final del artículo, si lo hago bien, habrás entendido el concepto y resuelto algunas dudas. ¡Vamos a ello!
Qué es un Child Theme y para qué sirve
Estoy súper convencido que habrás oído más de una vez hablar o mencionar este concepto. Apuesto a que incluso muchos hablan de que “es lo más” y muy necesario pero que nunca te has planteado ponerlo en tu blog por lo difuso y confuso que puede llegar a ser. ¿Puede ser?
O, mira, mejor esta. Seguro que has comprado un theme Premium que ya viene con su Child Theme y tú has dicho algo así como “ostrás! Que yo no quería hijos!!”. Macachisenlamar, ¿ahora que haces? ¿Activas al padre o al hijo? ¿Para qué sirve? ¿Es obligatorio?
Pues verás que es muy fácil de entender: Imagina que tienes en un folio los trazos de un dibujo de Pocoyó con Lula y Eli. No hay color, sólo están los trazos pero el dibujo en sí está chulísimo. Sin embargo, tu peque quiere color. Así que te pones a pintar de azul al pocoyo y se te queda chachi. Hasta aquí todo bien. ¿No?
Ahora imagina que tu peque cambia de opinión y se le mete en la sesera que quiere un Pocoyo verde. Imposible, nada que hacer. ¿Verdad?
Imagina que, en vez de colorear directamente el Pocoyó el día de ayer, decidiste hacer una fotocopia y colorearla, dejando intacto el original. Hoy, que tu peque está de otro humor, te pide otro color. Entonces si que lo tienes fácil. ¿Verdad? Porque sólo tienes que sacar una nueva fotocopia y volver a colorear.
Ah, que ya lo vas pillando, ¿no? ¿Ves? ¡Te dije que era súper fácil!
En lo que a las plantillas se refiere, es algo parecido. Los Child Themes están pensados para que puedas hacer cambios en la plantilla de forma ordenada, sin afectar directamente a la original. De este modo, si alguna vez cometes un error, puedes eliminar el hijo y tendrás la original intacta. O, por otro lado, si hay una actualización de la principal, podrás hacerla sin miedo porque tus cambios en “el hijo” no se verán afectados. ¿Me sigues?
Los Child Themes de Worpdress son formas de aislar los cambios que realizas en una plantilla de modo que los archivos originales permanezcan intactos.
Preguntas frecuentes sobre los Child Themes
Bueno, creo que el concepto está más o menos claro. ¿Verdad? De he hecho he podido ver tu cara en plan “venga tío, no te enrolles que es fácil” mientras leías lo anterior. ¿Si? (es broma eh!!! Que no tengo poderes!).
Vale, pero lo hemos definido. Seguro que definiciones habrás leído alguna que otra y, aun así, puede ser que te surja alguna duda. A ver si la respondo:
- ¿Es recomendable en todos los casos?. Para nada. Lo primero que tienes hacer es pensar en si vas a realizar algún cambio en el código de la plantilla. Si no eres de meterte a editar ficheros todo esto no te servirá de nada.
- Si tengo un Child Theme activado, ¿puedo actualizar sin miedo mi plantilla cada vez que quiera? A ver. Si, si te refieres a miedo de perder esos cambios en el código original de la plantilla que has hecho antes. Pero no, no te protege en absoluto de que la nueva versión de tu plantilla no sea compatible con algún plugin que tengas instalado o con tu servidor o con tu propia versión de Wordpress. Una cosa no tiene nada que ver con la otra.
- Si tengo un Child Theme activado, ¿puedo actualizar mi Wordpress y/o plugins sin miedo a que se me “descuajaringue” todo? No, lo siento de veras. El Child Theme sólo es para aislar los cambios que puedas hacer tú a tu tema original. Las actualizaciones de plugins y Wordpress pueden afectar a tu tema original y romperlo (o arreglarlo). Siempre está el riesgo.
- ¿Entonces? ¿Para qué sirve esto? Pues, como te he dicho, sólo si piensas hacer un cambio específico en la plantilla. Sirve para que tengas aislados y ordenados los cambios que vas haciendo de modo que, dentro de unos meses, puedas seguir actualizando la plantilla sin tener que recordar qué ficheros cambiaste.
- ¿Sobrecargan el servidor o ralentizan la página? Para nada. La gestión de un Child Theme está nativa en Wordpress y es muy sencilla. No ralentiza la carga.
- ¿Se pueden tener varios hijos? Bueno, eso ya es decisión tuya. Yo creo que como mínimo 2, que luego no estén solicos en el mundo. ¿Verdad? Pero si no quieres, pues hijo único o si prefieres, pos cuatro o 5. Cuando uno se pone … Ah! ¿Te refieres a Wordpress? Jejejeje. Si, también puedes.
¿Qué tal? ¿Cómo lo ves? ¿Te ha quedado más o menos claro? Seguro que si. En la mayoría de los casos, cuando uno comprende el concepto, se da cuenta de que no lo necesita porque sólo unos pocos nos ponemos a cambiar cosas en el código.
En mi caso si lo uso porque soy un blogger que cuida al máximo los detalles y esto me lleva a tener que meterme a hacer esos trabajitos de bricolaje… ¡Pero no es algo común!
Cómo se crea un Child Theme en Wordpress
Vale, que quieres más eh?? ¡Tenemos a alguien valiente! Así me gusta.
En efecto, es una forma de perderle el miedo al código porque sabes que cualquier cambio que hagas se soluciona quitando la carpeta o eliminando el archivo del tema hijo para que funcione el original. Así que, si te apetece, permíteme decirte cómo hacerlo:
Crea una carpeta en tu directorio de temas
Accede a tu servidor utilizando tu programa de FTP preferido (el mío es Filezilla) y navega por las carpetas hasta wp-content/themes.
Ahí debes crear una carpeta que será la que albergue los ficheros de tu nuevo tema.
Por norma general, esa carpeta suele llamarse de la siguiente forma:
nombretemaprinciapl-child
Por ejemplo, si quieres crear una versión del tema Twenty Fourteen, la carpeta se llamaría twentyfourteen-child.
Pero eso no es obligatorio, puedes llamarlo “lamadrequemepario-soyelhijo” si te apetece.
Agrega un archivo style.css a esa carpeta
Es el único archivo obligatorio y tiene que empezar con estas líneas:
/*
Theme Name: Nombre que quieras darle al tema
Theme URI: dirección donde publicas el tema
Description: Descripción del tema
Author: Tu mismico nombre
Author URI: Dirección de tu web / blog
Template: nombre exacto del tema padre
Version: 1.0.0
Text Domain: carpeta tema hijo
*/
@import url(«../carpetatemapadre/style.css»);
/* =Aquí empieza la personalización de tu tema
————————————————————– */
He puesto en rojo aquello que tienes que editar. Sobre todo, lo más importante es la parte de Template donde tienes que poner el nombre exacto de la carpeta que contiene la plantilla principal y, casi al final, donde dice @import que tienes que hacer lo mismo.
Activa el tema hijo en la configuración de Temas de Wordpress
Con lo anterior ya has tenido al bebé. Vamos, que fácil eh??
Si te vas a la configuración de temas, verás que ya tienes disponible el hijo y puedes activarlo. Hazlo sin miedo porque, en realidad, no va a producir ningún cambio en la visualización de tu Wordpress. Porque no has realizado ningún cambio.
Empieza a hacer cambios
Puedes empezar a escribir estilos CSS nuevos en ese archivo sin miedo a que, tras una actualización, se pierdan.
Además, puedes cambiar porciones de código. Por ejemplo, imagina que quieres cambiar el modo en que se muestran los comentarios en tu tema.
Pues lo único que tienes que hacer es localizar dónde está el archivo encargado de ello en tu carpeta principal y copiarlo a la misma ruta de tu carpeta hijo.
Luego, puedes modificar el archivo en la carpeta “child”. Mientras el archivo exista en la carpeta hijo, tendrá preferencia sobre el principal.
Conclusiones finales
¡Ya está! ¿Qué te ha parecido? Igual demasiado largo pero lo necesitaba para exponerlo todo de una forma sencilla. ¿O no lo he conseguido? Cachis, pues tranqui, que si te han quedado dudas estamos ahí para responderlas en los comentarios.
¿UN resumen?
El uso de temas hijos se está extendiendo pero no es algo que todos necesitemos. Es una maravilla para aquellos que tocamos nuestra plantilla para conseguir una personalización máxima sin querer perdernos por el camino.
Pero las garantías no van más allá de la propia plantilla. No supone seguridad alguna en la compatibilidad con los plugins y actualizaciones de Wordpress.
Ahora si que si … ¡Ya está! De nuevo muchas gracias a Alex por la invitación y a ti, muy agradecido de que hayas invertido tu tiempo en leerme, espero que te haya resultado muy útil. ¿Qué te ha parecido? ¿Lo has entendido por fin? ¿Conocías el concepto? ¿Tienes activado un Child? ¿Cuántos piensas tener? ¡Cuenta, cuenta!
Muchas gracias Victor por el artículo, llevaba unos días un poco detrás sobre este asunto, y me ha quedado muy claro, tampoco me iba a meter en camisas de once varas, pero mejor tener las cosas claras.
Un abrazo y gracias a ambos 😉
Hola Javi!!
Pues muchas de nadas. La verdad es que ha sido un honor y alegría haber sido invitado a esta bitácora y, por supuesto, recibir un comentario como el tuyo.
Muchas gracias a Alex por la invitación y un saludo para ti Javi . 🙂
Hola Victor
Tengo una duda sobre la actualización de mi wordpress ojala me puedas ayudar, te lo agradecería mucho.
Mi problema es este:
Tengo una versión muy vieja de un THEMA de Wordpress instalado (2.3.0) pero quiero actualizarlo a la versión mas nueva, se que el salto de versiones de 2.3.0 a 4.1.1 es muy alta, al hacerlo pierdo muchos estilos y en casos se me ha desaparecido elementos como “revolution slider” me gustaría saber si ha llegado a ti un problema parecido al mio.
Te lo agradezco
Hola Ruth. La verdad es que si que he visto muchos casos.
Supongo que te refieres a Wordpress muy antiguo. Efectivamente, en cambios con tanto recorrido puedes perder mucho y es muy probable que se te rompa.
Sin embargo, mantener un wordpress tan desactualizado te puede traer muchos problemas como hackeos e incompatibilidades.
Mi recomendación es que saltes a otro tema. Monta un entorno de pruebas en otro alojamiento y actualiza el wordpress a ver qué ocurre. Actualiza todos los plugins y mira si el tema tiene una versión más moderna compatible.
En caso de que no, lo mejor es que cambies a otro tema más moderno. ¡Ya va siendo hora de un cambio de aires! 🙂
Espero haberte ayudado.
Saludos!
Hola Victor:
Muy bueno el artículo sobre CHILD.
Te cuento tengo 2 clientes, que tienen muchas modificaciones sobre el tema original, y quieren hacer un child de estos, para realizar actualizaciones.
Que opciones puedo tener?
* Rehacer la web con una nueva instalación y luego copiar los cambios, directamente al child theme?
* Hacer un child con lo actual, y luego modificarlo en el original o que se aplique la actualización y ahí modifique el css original y quede todo en el Child?
Desde ya, quedo a disposición y agradezco tus comentarios.
Muchas gracias
Leonardo Grabow
Hola Leonardo!
Bueno, en este caso se te puede complicar. La mejor forma de hacerlo es:
1. Descarga la versión original del tema (misma versión que tienen) y compara los archivos para ver qué cambios se han ido haciendo. Puedes usar herramientas como http://www.quickdiff.com/ o, si tienes más conocimientos, por línea de comandos de una consola.
2. Una vez localizados los ficheros que han sido modificados, copialos a una nueva carpeta respetando la estructura. Ahí tienes el tema hijo.
3. Pon la versión original del tema en activo, sube la carpeta del tema hijo y activa el hijo en Wordpress.
4. Si todo ha ido bien, se mostrará correctamente y tendrás migrado a un tema hijo.
El problema de cuando hay muchos cambios hechos en el tiempo es que ya no sabes qué has cambiado ni donde. Con esto, que parece muy laborioso pero puedes acabarlo en una o dos horas, habrás solucionado el problema.
Luego ya puedes jugar a actualizar el tema original y ver si los cambios son compatibles.
Si algo falla tras actualizar, entonces tienes que:
1. Localizar el fichero que está dando fallo.
2. Copiar el original actualizado.
3. Aplicar los cambios que se han ido haciendo sobre el actualizado.
Espero que te haya resultado de ayuda.
Saludos!
hola! pero en caso de venir ya el archivo child con la plantilla que has comprado qué se debe hacer con él?
Gracias!!!!!!
Hola Ines, muchas gracias por pasarte por aquí 🙂
Si tu plantilla viene con un child theme ya no tienes que hacer todo este trabajo.
Te servirá para lo mismo, el procedimiento es instalar la plantilla y luego el child. Deja el child theme activado y así no perderás ninguna personalización que hagas después de una actualización de la plantilla.
Un saludo!!
Hola Inés!!
Pues si no piensas hacer cambios en el código o style.css no tienes que hacer nada. Ni siquiera lo subas. Ahora, si no sabes si querrás hacerlo o piensas hacer los cambios, súbelo y activa el tema hijo.
En el paquete estándar que te descargas el tema hijo no aplica ningún cambio, no tiene efecto salvo que coloques ahí nuevos archivos.
Saludos!
Vaya pedazo de post!! Yo tengo una duda, a ver si me puedes ayudar. Yo tengo un blog con genesis y un child theme de pago. Si personalizo las css y luego hago una actualización del child theme, perdería esos cambios. ¿Puedo hacer un child theme del child theme, o una copia, para tener otra css que no se me sobreescriba? Vamos, que cómo actualizo el tema hijo sin perder los cambios realizados.
Gracias mil
Hola Paula,
Normalmente el tema child no se suele actualizar.
Un saludo!
Buenas tardes
Una vez creado el tema hijo, si queremos hacer cambios en el código, ¿dónde lo hacemos? A mi ahora solo me aparecen 3 archivos en el child (style.css, functions.php y el screenshot.png), pero si quiero modificar la plantilla y toco el tema padre, estaría modificando este y no el child, ¿Cómo hago?
Gracias de antemano!
Hola Jorge,
Para ello tienes que crear los archivos en el tema child. Es decir, si quieres modificar el header.php, pues debes copiarlo en el tema child, y hacer allí las modificaciones que quieras.
Los archivos del tema child siempre se usarán antes de usar el archivo del tema de origen.
Saludos!
Hola, se que hace tiempo que no se comenta en este hilo. Pero no obstante y por si acaso quiero hacer un par de preguntas, porque esto del tema hijo me está volviendo loco.
Veamos, lo que yo quiero saber es lo siguiente :
Yo compro un tema Pro, que ya trae de por sí un zip tambien con el child theme de dicho tema. Ok
Yo instalo el theme principal , o sea el que será » el padre «. Bien.
– A continuación instalo los plugins que se necesita ( elementor, etc etc , x etc )
Una vez tengo ya todo , y aún no he empezado a crear contenidos, instalo el Tema Hijo. Y lo activo, por lo tanto ya me olvido del tema
oficial, llámese Padre. Ok
Y como lo activo – el hijo – , siempre estoy y voy a estar trabajando con el hijo . Del padre nos olvidamos, no ?
Porque esto es lo que yo quiero saber.
Ahora mi pregunta :
Cuando toca actualizar ( porque toca actualizar y además cada dos por tres ) el tema Oficial , o sea el padre….
¿ Yo no debo hacer absolutamente nada con el tema hijo ?
Me explico: Si al principio el tema padre era la versión 0.1 y por tanto el tema hijo tambien es version del padre 0.1, y ahora actualizo el padre a la 0.2…
¿ que pasa con el hijo ? se queda en 0.1 ?. Tengo que hacer yo algo ? ¿ se actualiza el hijo a la vez que el padre por arte de magia o de modo invisible ?
Me toca copiar códigos del padre y pegarlos en el hijo ? y esto en cada actualización ? o no debo preocuparme de ello ? Lo hace solo ?
Esto me trae de cabeza y por eso no me atrevo a incluir el tema hijo, pero a la vez me da pánico llegar a perder todo algún dia.
Segunda pregunta :
Supongamos que por catástrofe sea de la naturaleza que sea, se me rompe el tema hijo – que es con el que trabajamos, no ?- ok tengo el padre. ¿ Y ?
El tema padre se supone que está vacío de contenidos ya que todo estaba en el hijo.
Entonces ¿ para qué me sirve realmente el tema hijo ? si se destruye el hijo y el padre está blanquito y vacío de contenido me da igual tener hijo que no .
Es decir, capto que el hjj no hace función de copia de seguridad, sino que sirve para modificar Css y otras cosas como php sin que afecte al padre.
Pero precisamente por eso sigo sin entender la utilidad real del hijo , pues si el padre se mantiene siempre intacto, en caso de destruirse mi web, se destruye el hijo y no el padre, y de nada me sirve tener el padre si está en blanco.
O sea, tendría que construir desde cero otra vez tooooda mi web sobre el padre o sobre un nuevo hijo ? es que no entiendo nada .
Por otro lado, como uso un theme Premium siempre tengo a mi disposición otra copia nueva y original – y por tanto también vacía de contenidos – del tema padre.
En resumen , ¿ qué se debe hacer exactamente una vez instalado el padre y el hijo ? ¿cómo interactúan los dos ? ¿ debemos de hacer algo en plan mantenimiento para que ambos – y no solo el hijo – sepa el contenido que hay ?
Busco estas respuestas en todas partes pero no las encuentro. Solo encuentro los pasos a dar para crear temas hijos, perno no se como funcionan las cosas o qué hay que hacer después de ya tener el tema hijo.
¿ Me pueden ayudar con esto ?
Un saludo y excelente página y post !
Hola Frank,
El child theme no hace falta ir actualizandolo. Se mantendrá todo igual y funcionando. Un saludo!
Hola, tengo las mismas dudas que frank, es que no le veo sentido al tema hijo, si no se actualiza y los cambios no aparecen en el padre para que me vale o lo que debo de hacer es actualizar el tema padre y guardar los cambios, pero eso como lo hago para guardar los cambios en el tema padre a la vez.
Un saludo y gracias de antemano.
Hola! El tema hijo sirve para poder hacer cambios ya sean de css o a través del functions.php del tema hijo y que no se borren cuando actualizamos el tema padre.
Es decir, yo puedo ir actualizando la plantilla digamos por ejemplo GeneratePress, pero el tema que tendremos activo será GeneratePress Child. Y con ello, todos los cambios que yo haya hecho en el functions.php o cualquier hoja de css del tema hijo o child no se verán afectados por las actualizaciones de la plantilla padre, en este supuesto caso del ejemplo GeneratePress.
Los cambios que hagas en el tema hijo o child, se verán reflejados en el tema padre siempre.
Un saludo!
Hola un buen post sobe los child themes
Quería ver si me pueden ayudar con una duda, yo uso el tema Ocean WP, pero ha habido una actualización muy grande, yo me he quedado en la versión 2.1.0 y actualmente ya está en la versión 3.0.7. y me está empezando a dar problemas el no actualizarlo, especialmente con las rich snippets.
Sin embargo, mi mayor problema es que al actualizar el tema padre se rompe el sitio, he pensado en volver a crear un tema hijo con la nueva versión del tema padre, solo que no recuerdo todos los cambios que he realizado en la web. ¿Tal vez hay alguna manera de actualizar el tema hijo a la nueva versión?
Hola Geovanny, seguramente haya una nueva versión del child theme, Actualizala y luego añade todo el código del functions.php que habías creado.
Un saludo!