Ⓦ Cómo crear un Child Theme en WordPress


¿Has modificado manualmente la apariencia de tu Theme: un color, una traducción, un texto… y al poco tiempo, el desarrollador ha actualizado y se han perdido tus cambios y has vuelto a tenerlo como al principio?  Debes aprender cómo crear un Child Theme.

¿Qué es un Child Theme?

Aunque se llama así técnicamente, en realidad lo que se hace es crear una copia de una plantilla determinada, de tal forma que copia todos los estilos de la plantilla original.

La idea de hacer esto es para que tus modificaciones se hagan en la plantilla copia en lugar de la original. Tu plantilla activa, será realmente la copia y será ella con la que trabajas.

De esta forma, el día que el desarrollador actualice su plantilla original, tus modificaciones no desaparecerán ya que en realidad están hechas en la copia.

A esta copia se la llama Child Theme (tema hijo) porque depende directamente del Parent Theme (el original)

Cómo crear un Child Theme

Básicamente existen dos formas de crear un Child Theme en WordPress: o bien lo haces manualmente, o utilizas un plugin que se encargue de hacerlo todo.

En este caso no debes preocuparte por los recursos que consuma el plugin, ya que únicamente lo vas a utilizar para crear el Child Theme; una vez que esté creado, puedes desinstalarlo y borrarlo sin miedo, ya que no tiene ninguna otra función.


Nuevo curso de Adaptación al RGPD para aprender a adaptar tu sitio web al nuevo reglamento europeo. Accede, además al resto de los cursos de AcademiaWP.online con la Tarifa Plana de suscripción

Puesto que este blog está más orientado a usuarios sin conocimientos avanzados en WordPress, voy a explicarte la segunda opción: utilizando un plugin.

Child Theme Configurator

Para crear un Child Theme voy a utilizar este plugin, ya que es uno de los más fiables del repositorio de WordPress y además es gratis. Además es muy fácil de utilizar y las veces que lo he utilizado no me ha generado ningún tipo de problema.

Este plugin cuenta con más de 100.000 instalaciones activas y una valoración de 4.8 / 5 estrellas.

Una vez instalado y activado, deberás acceder al menú Herramientas de tu Panel de Administración de WordPress y ahí seleccionar la opción “Child Themes”. Entonces se te abrirá la pantalla de opciones para crear un Child Theme.

En esta pantalla, verás marcados de color azul unos pasos numerados, donde deberás de ir eligiendo las opciones según tus necesidades.

Cómo crear un Child Theme en WordPress
Panel de opciones de Child Theme Configurator

El proceso es muy simple:

  1. Elige “Crear nuevo Child Theme”
  2. Selecciona del menú desplegable el Theme del que desees crear la copia
  3. Pulsa sobre “Analizar”
  4. Elige un nombre para la carpeta donde se va a guardar el Child Theme en tu hosting (puedes dejar el que trae por defecto)

El resto de opciones es preferible no tocarlas, y dejarlas tal cual vienen por defecto en el plugin para evitar que se puedan sobreescribir archivos de estilos y funciones.

Salta directamente al paso 9.- Crear nuevo Child Theme

Y así de fácil has creado tu Child Theme. Ahora únicamente tienes que acceder a la opción “Apariencia” de tu menú de Administrador de WordPress y ahi seleccionar “Temas”.

Verás que en tu listado de Themes te ha aparecido uno nuevo, cuyo nombre incluye la palabra Child. Este es tu nuevo tema. Debes seleccionarlo y activarlo.

Ahora ya puedes desactivar y borrar el plugin que has instalado para crear el Child Theme.

Modificar un Child Theme de WordPress

Si entras en tu hosting, te darás cuenta de que el plugin ha creado de forma automática un directorio nuevo dentro de Themes, con el nombre que has elegido.

Dentro de estar carpeta únicamente tendrás 3 archivos:

  1. functions.php (donde indica que las funciones deberá heredarlas de su Parent Theme)
  2. screenshot.png (que es la captura de pantalla que muestra en la zona de Temas de tu WordPress)
  3. style.css (un archivo vacío donde especificar los estilos del nuevo Theme)

Por tanto, debes tener claro que, para modificar cualquier estilo del Parent Theme, primero tendrás que copiar en la carpeta del nuevo Theme el archivo original y modificarlo según tu gusto o necesidades.

El Child Theme está programado de tal forma que siempre dará prioridad a los archivos que hay en su carpeta, antes de los originales. Es decir, el Child Theme primero buscará un archivo en su propio directorio y, únicamente cuando no lo encuentre (porque no es algo que quieras modificar y, por tanto no lo has creado), irá a la carpeta del Parent Theme a leerlo allí.

El Video Tutorial

Como este tema es un poco complicado para explicar en palabras, he creado un video tutorial para la ocasión, pra que de esta forma lo puedas entender más fácil.

 

Conclusión

Es muy recomendable que nunca modifiques los archivos originales de tu Theme por dos motivos principales:

  • Por si el desarrollador actualiza su theme. En este caso, si actualizas la versión del theme en tu WordPress, sobreescribirá toda la carpeta del theme original. Si has guardado ahí tus modificaciones, también las perderás.
  • Por si cometes un error modificando cualquier archivo de estilos. Si al modificar cualquier archivo del theme borras alguna línea que no deberías de haber tocado, si lo has hecho sobre la copia, siempre podrás volver al original sin que tu blog sufra ningún daño.

Crear un Child Theme con el plugin que te he recomendado lo puedes hacer en menos de 5 minutos y realmente merece la pena.

¿Has modificado alguna vez un Theme? ¿Qué cosas son las que sueles personalizar a tu gusto normalmente cuando instalas un theme? ¿Tienes algún truco a la hora de hacerlo?

Gracias por dejarme tus comentarios y compartir tus experiencias con otros lectores.

 

¿Te parece interesante este artículo?
[Total: 8 Promedio: 4]

>

25 comentarios en “Ⓦ Cómo crear un Child Theme en WordPress

  1. la cosa es que ya tengo mi web publicada y terminada y lei de la posibilidad de perdida de configuracion si actualizo mi tema ….y queria saber la posiblididad de no hacer tema hijo manual o por plugin pero solo si No pasa nada si nunca actualizo mi tema, claro.
    la copia de seguridad si las hago con el mismo programa que usas tu. un saludo y gracias de antemano.

  2. hola, bien explicado todo. me ha gustado, pero yo tengo una pregunta? y seguro que la sabes…. si yo decido no actualizar nunca la actualizacion (gratis)del tema que uso, pasaria algo en un futuro? incompatibilidad con actualizacion de wordprees o pluging tal vez?

    • Hola Fátima!

      Esto que me comentas no deberías ni planteártelo. Cuando un desarrollador lanza una revisión de su theme es, en la mayoría de los casos, porque ha incluido mejoras o funcionalidades nuevas.. pero en otros muchos casos, resuelve problemas o fallos de seguridad.

      Es totalmente recomendable tener tu theme y plugins SIEMPRE actualizados a la última versión, al igual que el core de WordPress. Esto no va a cambiar ni borrar tu configuración, ya que ésta está guardada en la base de datos… pero para mayor seguridad puedes crear un Child Theme como explica el artículo y trabajar las nuevas modificaciones sobre él.

      Un saludo!

    • Hola Jenn!

      Las modificaciones que el desarrollador haga en el theme padre se verán reflejadas sin problema en tu Childtheme, porque sigue leyendo de él. Lo único que los archivos que tú hayas modificado en el hijo, tendrán preferencia sobre lo que haya en ese mismo archivo en el tema padre.

      Saludos!

  3. Hola!! Muchas gracias por el post! instalé muy bien el plugin con tus indicaciones y creé el child theme!! Ahora me surgieron estas dudas… jeje
    1. Debo activarlo el child theme?
    2. Si hay una actualización del tema padre, me mantengo con el tema hijo como activo? o cómo se hace en este caso?
    3. Cada vez que haya actualización del tema padre debo crear un tema hijo? o cómo funciona?
    Gracias anticipadamente!

    • Hola Valeria!

      Gracias por pasarte por mi blog y leer mis artículos.

      Una vez instalado el ChildTheme, debes activarlo para que funcione (aparentemente no notarás nada, pero no te preocupes).

      Tú ya no tienes que preocuparte de nada más. Aunque el theme se actualicé, tu seguirás teniendo tu Childtheme instalado y no tendrás que volver a crear más mientras no cambies el tema padre por otro distinto.

      Un saludo!

      • Hola JuanMa!! Gracias por tu pronta respuesta!!! Cuando le di activar el tema hijo me mostró mi página sin ningún cambio ni texto como ya lo tenía anteriormente…
        🙁 qué me sugieres hacer??

        • Hola! Como ya te adelantaba, el tema hijo no muestra ninguna modificación, a no ser que hayas modificado uno de los archivos de estilo o programación del padre y lo hayas guardado en la carpeta del hijo.
          De otra manera no verás aparentemente ningún cambio.

  4. Hola Juanma

    Ayer vi tu directo en youtube, muy bueno.

    Una pregunta: En mi caso funciono con Astra Pro + Elemento Pro

    Astra dispone de un child theme descargable que después ya configuras a tu gusto.

    Pero para mí es muy nuevo esto de los childs themes porque siempre he ido ” a pelo “, a si que todavía no lo he probado.

    Mi pregunta es: Teniendo en cuenta que además del Astra uso el Elementor ( incluso en alguna página uso el Slider Revolution ) ….

    …¿ Qué haríamos aquí en esos casos ?

    Es decir, cada vez que se actualice Astra o bien el Elementor etc, nos desconfiguraría toda la página? , y , ¿deberíamos añadir más cosas al child theme o simplemente los códigos del theme base , en este caso Astra?

    Por último, con la preocupación que andamos siempre en la batalla de la velocidad de carga.. ¿ no será un lastre considerable en una página en la que usamos constructores , a sumar con todo el resto de plugins, SEO, seguridad, backups, etc etc ?
    Aunque es bien cierto que funcionando con un child theme duermes más tranquilo a la hora de que se avecinen actualizaciones, eso sí.

    Gracias y un saludo!

    • Hola Frank.

      Siento no poder ayudarte mucho, porque no conozco el theme Astra… eso deberías preguntarlo a los desarrolladores del theme.

      Por otro lado, Elementor (de momento) es un plugin, un constructor visual para hacer entradas más atractivas, por lo que ahí no te va influir el ChildTheme para nada.

      Respecto a si el uso de plugins adicionales hace tu WordPress más lento… siempre va a depender de muchos factores. Un plugin en sí, si está bien optimizado no tiene porqué influir.

      Un saludo!

  5. A mi la creación de Child temas me ha generado algún contratiempo cuando se ha actualizado el tema original. Se que lo que me ha sucedido a mi no es norma genérica, pero lo cierto es que crear un child no siempre es garantía de que vas a tener protegidas las modificaciones que hagas al original. Normalmente las modificaciones que se hacen a un tema, son en mayoría propiedades nuevas de css y alguna función php que añadas, así que si al crearlas las vas anotando, por ejemplo en un txt, en caso de actualización del tema, haces un copy paste al style.css o al .php y ya tendrias otra vez todo en su sitio, con la ventaja de que no tienes un child que te produce una pequeña demora añadida al tiempo de carga de las páginas del blog.
    En cualquier caso gracias por la información, no conocía ese plugin. Un saludo.

    • Hola Miguel!

      Como bien dices, lo que te ha ocurrido no es lo normal… yo soy partidario de crear siempre un Child Theme e ir trabajando con él para evitar sorpresas.

      Un saludo y gracias por tu aportación! 😉

  6. HOla,
    Una duda que me surge. Al crear un child theme copio en él un archivo que modifico (archivo.php) . Si luego actualizo el tema padre y en esa actualización el archivo.php ha sido actualizado por el desarrollador, ¿el blog sigue leyendo el mío? ¿Esto no dará error en el blog si hay algún cambio importante en archivo.php por parte del desarrollador?

    • Hola Jesús!
      Gracias por pasarte por el artículo y dejar tus preguntas.

      WordPress siempre va a leer primero los archivos contenidos en el ChildTheme. En el caso de que no encuentre ahí el archivo que busca, iría a buscarlo al Parent Theme.

      Es decir, si el desarrollador actualiza algo, se guardaría en la carpeta original del theme, por lo que siempre va a prevalecer tu modificación sobre la de él.

      Si por casualidad el archivo modificado por tí es alguno que está provocando un bug de seguridad importante en tu instalación de WordPress (como por ejemplo ha pasado muchas veces con el theme “Avada”), sería conveniente volver a hacer las modificaciones sobre el theme original, aunque no suele ser lo habitual y siempre consultándolo antes con el desarrollador del theme.

      Un abrazo!

    • Gracias Gerardo! Lo cierto es que crear un theme hijo es algo de vital importancia a la hora de hacer modificaciones de la plantilla, y por suerte este plugin nos lo facilita todo 😉

  7. Hola Juanma, ahora si mi plantilla viene con un child theme incluido debo de crear mi sitio en ese y no tocar el tema padre? o entiendo mal. O creo mi sitio en el de padre y hago child theme con el plugin? Gracias. Saludos desde Chile.

    • Hola Ingrid!
      Los Child Theme únicamente los vas a poder hacer de los Parent Theme.
      Si tu Tema Padre ya trae un Child, habría que ver el motivo por el que es así. Lo habitual es que las plantillas “normales” no traigan Child Theme instalado.
      Un saludo!
      Este proceso no vale para hacer Child Theme de plantillas de Génesis, ya que este theme utiliza un sistema distinto.

Deja un comentario

 Al usar este formulario accedes al almacenamiento y gestión de tus datos por parte de esta web de acuerdo a nuestra Política de Privacidad. *

Centro de preferencias de privacidad

Cookies de sesión

Se usan para almacenar tu nombre, correo, IP y demás datos que dejas en los formularios de comentarios, contacto y acceso.

auth_key,secure_auth_key,logged_in_key,nonce_key,comment_author, comment_author_email, comment_author_url,rated,gdpr,et_editor,gawdp

Cookies externas

Usamos cookies externas en las que se almacenan tus usos de navegación, si ya estás suscrito al boletín y los elementos compartidos en redes sociales.

cfduit_,_ga,_gid,intercom-id,intercom-lou,mailerlite:language,mailerlite:webform
_ga,_gid
PREF, VISITOR_INFO1_LIVE, YSC, NID, YSC, _gid, ga, LD_T, LD_U, LD_R, LD_S

¿Quieres cerrar tu cuenta?

Se cerrará tu cuenta y todos los datos se borrarán de manera permanente y no se podrán recuperar ¿Estás seguro?