• Resuelto alfredokm

    (@alfredokm)


    Hola. consulta:
    Si tengo un tema instalado, configurado y funcionando hace ya algunas semanas e incluso meses, ejemplo: tema Sydney (o cualquier tema) y creo un tema hijo de ese tema (con el Child Theme Plugin), una vez listo y activado el tema hijo, ¿puedo actualizar el tema padre sin problemas ni preocupaciones, tomando en cuenta que ese tema padre estuvo funcionando sin hijo un buen tiempo?.
    Desde ya, gracias.

Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
  • Hola @alfredokm.
    Es exactamente como tú lo describes. No hay problema por haber tenido el tema original (el que será tema padre), instalado por un tiempo. La única pega es si hubieses hecho alguna modificación en ese tema original, que tendrás que trasladarla al tema hijo para no perderla en alguna actualización.
    Por lo demás has descrito la manera ideal de trabajar con los temas.

    Espero haberte solucionado la duda.

    Un saludo.

    Moderador almendron

    (@almendron)

    Me vais a disculpar pero voy a poner un punto discordante.

    Todo depende de cuanto hayas modificado el tema hijo. Voy a poner un ejemplo real:

    Yo uso un tema que acaba de actualizarse. Yo no utilizo tema hijo sino que he modificado directamente unos diez archivos del tema. Una de esas modificaciones estaba en un archivo que en la nueva versión ha desaparecido. Si hubiera tenido un tema hijo, esa modificación la hubiera perdido y me hubiera producido un error.

    Por tanto, no siempre una actualización del tema padre está exenta de problemas. Al final resulta que tienes que comprobar qué cambios ha habido y no siempre resulta fácil.

    Yo no soy partidario de utilizar temas hijos. Prefiero modificar directamente aunque, como es obvio, es necesario documentar esos cambios para aplicarlos de nuevo cuando haya una nueva versión.
    Para documentar basta con comentar en el archivo poniendo siempre una palabra clave (Yo uso «modificado») y por supuesto trabajar en local para realizar los cambios.

    En cualquier caso, siempre es conveniente ir al trac y comprobar. En el caso del ejemplo real que comentaba puede verse aquí.

    Bueno Luis, en esta ocasión no voy a estar de acuerdo, así me apunto a la discordia y que se pueda generar debate 🙂

    WordPress en cuanto a los temas un poco como CSS (perdonadme la analogía que además no es correcta desde un punto de vista estricto), pero algo así como: definimos un color para los títulos y si después viene alguien y nos dice que el color va a ser otro, pues no quedamos con el último, o si el color definido inicialmente tiene más autoridad que el segundo que llega, se le hace caso al primero. En los temas definimos una plantilla para una página o parte de la misma, si después viene alguien y nos dice, no, pilla esta otra plantilla en su lugar, pues WordPress le hace caso y usa la segunda… en realidad se hace un poco a la inversa, WP mira si haya una plantilla hijo, sino mira en el padre, sino mira en la genérica, etc… con varios niveles hasta encontrar la adecuada a mostrar https://wphierarchy.com/

    Bien, vamos al meollo, si es nuestra web los títulos h1 están definidos por el core (mediante CSS) en negro y los queremos poner en verde, ¿qué hacemos?, ¿vamos al archivo CSS principal de WordPress y cambiamos la definición de negro a verde? ¿o vamos al personalizador de CSS o a nuestro archivo propio de CSS y desde ahí sobreescribimos el color?

    Salimos del CSS, el core de WordPress por ejemplo, en una función de su API nos escribe un texto en todos los pies de página y tiene su correspondiente hook, como no nos gusta ese texto y queremos cambiarlo, ¿modificamos el core para eliminarlo o escribir otro texto? ¿o creamos nuestra función en el hook adecuado para modificar ese texto o eliminarlo con remove_action?

    Pues lo mismo con los temas, en mi opinión, no debemos modificar los archivos del core de WordPress, plugins o temas (a no ser un tema hecho a medida que ya es otro asunto diferente), sino extenderlos con la herencia de templates y con los hooks y filters que nos proporciona el core y plugins, si un plugin no lo podemos extender porque no tiene los hooks necesarios… pues a lo mejor deberíamos hablar con su creador para que los habilite y así mejorar el software Open Source, o sino seleccionar otro plugin más adecuado.

    Cuando el autor de un tema publica una nueva versión, debería mantener retrocompatibilidad y documentar bien los cambios, sobre todo los cambios importantes, como eliminación de alguna plantilla y avisar bien al usuario de las posibles consecuencias, pero lo mismo pasa con los plugins y con el core, ¿qué pasa si de repente WordPress cambia remove_action por del_action?, que dejarían de funcionar muchas de nuestras personalizaciones, y lo lógico es que se siga manteniendo remove_action como un alias de la nueva función, además de avisar del cambio.

    Después de todo este rollo, lo único que quiero decir es que mi opinión (que por supuesto puede ser errónea), es que nunca debemos modificar el core (de WordPress, de un plugin o de un tema) sino extenderlo.

    Y respondiendo a la pregunta original de @alfredokm la respuesta es que si, si tenemos un tema hijo podemos actualizar el tema padre sin ningún problema, aunque me he encontrado en algunos temas (como por ejemplo Enfold), que al cambiar por primera vez a un tema hijo no se mantienen las personalizaciones realizadas sobre el padre en su personalizador, por lo que deberemos aplicarlas al tema hijo o previamente exportar sus configuraciones e importarlas en el tema hijo, ya que estos temas suelen tener una opción para exportar/importar las personalizaciones.

    Iniciador del debate alfredokm

    (@alfredokm)

    Muchas gracias por sus respuestas, colegas… y gracias por tomarse el tiempo.
    Ha quedado todo claro!

    No estoy del todo de acuerdo @almendron, precisamente trabajo con temas hijo, para que en una actualización no me borren un archivo que tenía editado o modificado.
    Soy de la opinión de @carloslongarela. Tanto en temas como en plugins, debemos trabajar con temas hijo, o copias de ficheros.
    No se me ha planteado aún una situación en la que sea perjudicial un tema hijo. Pero estaré atento después de lo que has contado.

    Gracias!

    Moderador almendron

    (@almendron)

    @luiscolome : Ni que decir tiene que es necesario tener una copia de los ficheros modificados. De hecho, siempre mantengo tres copias: archivo, archivo-original y archivo-modificado.

Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
  • El debate ‘Temas hijos’ está cerrado a nuevas respuestas.