Cuando trabajamos en WordPress, la mayoría tenemos claro que nunca deben modificarse los archivos del theme principal y que para personalizarlo debemos crear un «child theme» o tema hijo y allí aplicar las modificaciones de estilos y funciones que necesitemos, de forma que al actualizar el tema padre, podemos conservar sin problema nuestros ajustes y personalizaciones.
Pero, ¿qué ocurre cuando trabajamos con un framework como Genesis Framework, en el que el theme que utilizamos ya es un child theme?
Teóricamente, un child theme de Genesis, al ser puramente CSS, nunca o prácticamente nunca, se va a actualizar, porque todas las funcionalidades principales están en el framework que si se va actualizando.
Aún así, hemos de tener siempre en cuenta esa posibilidad, y a la práctica, lo cierto es que si me he encontrado algunos child themes, compatibles con WooCommerce por ejemplo, que han sacado alguna actualización para poder adaptarse a los cambios del plugin.
¿Cuál es la mejor manera entonces de aplicar cambios en estás plantillas?
1- Modificar los archivos directamente
La forma más rápida y sencilla, dado que probablemente no se vaya a actualizar nunca ese child theme, es modificar directamente el archivo functions.php y styles.css del tema. Pero ojo, no de cualquier manera.
Para los estilos, procura realizar las modificaciones aplicando de nuevo los estilos, no haciendo cambios directamente en los selectores ya existentes, y añádelo todo junto al final del archivo, indicando claramente cuáles son los estilos de la personalización.
De esta forma, si se actualiza el child theme, podrás copiar esa parte del archivo y aplicarla de nuevo sin problema.
Lo mismo ocurre con functions.php, en el que debes indicar muy claramente que funciones o modificaciones has añadido para poder conservarlas. Una opción muy práctica es ponerlas todas en un mismo archivo, functions_custom.php, por ejemplo, y llamarlo desde el functions.php principal.
2- Plugins para snippets y css
Otra opción también muy válida es utilizar plugins para introducir las modificaciones que queramos.
La ventaja es que tendremos todos los cambios por separado y podremos activarlos y desactivarlos cuando nos convenga. El inconveniente es que toda esa información se guarda en la base de datos y queda vinculada al plugin, por lo que quedarás dependiente de é.
¿Qué plugins podemos utilizar?
- En el caso de Genesis, Genesis Extender: es un plugin que añade funcionalidades al framework para añadir, no sólo código y estilos, sino también hooks, condicionales, plantillas, javascript, y muchas otras opciones fácilmente desde su panel de opciones sin tener que modificar el código.
En el caso del CSS, tiene la ventaja de que puedes abrir el editor «en vivo» directamente en la página e ir viendo automáticamente los cambios que realizas.
La única desventaja es que es un plugin de pago, aunque si eres desarrollador y utilizas Genesis a menudo te puede valer mucho la pena:
- Simple CSS o SiteOrigin CSS: existen bastantes plugins que permiten crear estilos personalizados para tu web, algunos con editor visual, para ver los cambios automáticamente, etc.. yo he probado estos dos, pero hay bastantes más.
- Code Snippets: en este artículo comentaba la comodidad de guardar tus snippets de código mediante este plugin. La ventaja de hacerlo así, es que además de tener las funciones por separado del tema o child theme, es que puedes tenerlos agrupados por tipos de funciones (de personalización, para WooCommerce, etc..) y reutilizarlos en diferentes proyectos.
3- Crear un plugin propio
Una opción muy utilizada por desarrolladores es crear un plugin propio que incorpore todas aquellas funciones que queremos añadir a la web.
Puede ser un plugin estándar, o un mu-plugin (must use plugin) que tienen la particularidad que se crean en una carpeta independiente del resto de plugins (tendremos que crear la carpeta mu-plugins dentro de wp-content) y que no aparecen en la lista de plugins en el administrador de WordPress, por lo que el usuario no podrá desactivarlo.
4- Crear un tema nieto
Una 4ª opción, que nos permite tener las modificaciones por separado sin tener que recurrir a plugins, es la que nos explican en el blog de Nelio Software en este artículo: Temas nieto – Cómo adaptar temas hijo (creados a partir de frameworks), creando una estructura de carpetas en nuestro child theme para colocar nuestros estilos y funciones sin modificar el código original. Sin duda una opción, más elaborada y no tan inmediata como el resto, pero técnicamente mucho mejor.
¿Cómo acostumbras tú a realizar las modificaciones de estilos y funciones tu child theme? ¿Cuál crees que es la mejor opción?
¿Eres implementador o desarrollador WordPress?
En la Zona DPW encontrarás más recursos, tutoriales, plantillas, y una biblioteca de snippets para poder utilizar en tu día a día y ganar tiempo en tu trabajo:
ACCEDER AHORA
Comentarios
2 respuestas a «Cómo modificar los estilos y funciones de un child theme»
|
Muy bueno!
|
Gracias David!