En el tutorial de hoy vemos por qué Genesis es tan bueno. Tanto para usuarios finales, como para desarrolladores de WordPress.
Antes que nada... ¿Qué es Genesis?
Lo primero es lo primero. Aclaremos conceptos. Técnicamente Genesis es un theme (un tema, una plantilla). Se instala como tal, y WordPress lo considera como tal. Ahí no hay vuelta de hoja. Pero también es cierto que es un theme muy especial. Genesis es un Theme Framework.
¿Qué quiere decir eso? Pues básicamente un framework es una especie de "capa" de nuevas funcionalidades que se añaden a un lenguaje o software. Por ejemplo, mucha gente considera que WordPress es un "framework" de PHP, ya que añade un seguido de librerías de funciones (todas en PHP) pensadas para crear un CMS.
Del mismo podo, cuando instalamos Genesis, no solo modificamos el aspecto de nuestra web en WordPress, sino que además le añadimos varias funcionalidades. Los desarrolladores de Genesis lo comparan con un coche, con el siguiente diagrama:
Como podéis ver, WordPress sería el motor. Lo que hace que el coche funcione. La base, el pilar fundamental. Luego Genesis sería el chasis, la estructura, el cuerpo que se monta alrededor del motor. ¿Se entiende la idea?
Pero si os fijáis en el esquema, aún queda un tercer elemento. Los acabados: El color del coche, la tapicería, las llantas, los extras, etc. Eso serían los child themes (temas hijo, plantillas hijo). Hablemos sobre ese punto.
¿Qué son los child themes de Genesis?
Como ya hemos dicho, Genesis es un theme. Pero no está pensado para ser instalado y activado propiamente, sino que está pensado para ser un Parent Theme. Un tema padre. Eso quiere decir que nunca lo debemos tener activo y trabajar en él, sino que debemos instalar un child theme (tema hijo).
Los child themes de Genesis son los que le dan un aspecto visual distinto a cada web. Aunque todos ellos tengan el mismo parent theme (Genesis), ellos pueden ser muy distintos entre sí.
Por ejemplo, aquí vemos una captura de pantalla del child theme Genesis Sample:

Homepage del theme Genesis
Y aquí podemos ver una captura del tema Blossom:

Homepage del tema Blossom
Como veis, no tiene nada que ver uno con el otro. Pero ambos usan Genesis como parent theme. O sea que queda claro que el diseño de un child theme de Genesis no tiene límites. Se diseñan en Photoshop, como cualquier otro theme, y el límite es la imaginación.
Por cierto, ambos themes (entre otros) están disponibles para descargar en el apartado de descargas de la Intranet, para todos los suscriptores de los cursos. Si queréis, podéis bajarlos para instalar y verlos en directo.
¿Y que tiene Genesis que lo hace tan especial?
Hasta este punto, muchos podríais preguntaros qué es lo que hace Genesis tan especial. Después de todo, cualquier theme puede ser un "parent" theme. Si queréis más información sobre esto, os recomiendo la clase #9. Crear child themes del Curso de WordPress Intermedio.
Bien, pues vamos a ver los puntos fuertes que tiene tanto para usuarios como para desarrolladores de WordPress:
Para los usuarios
- Ligereza: Genesis está extremadamente bien programado. El código es ligero y está optimizado, y da los mejores resultados de PageSpeed.
- Calidad: Usa HTML5, CSS3, y Schema, lo que ayuda mucho a Google a indexar mejor gracias a los microformatos. Incluso Matt Cutts, el director del Search Quality Team de Google, lo usa en su web personal.
- Accesibilidad: Cumple todos los criterios de accesibilidad para personas con problemas de vista. No podemos decir lo mismo de la gran mayoría de themes que hay por ahí.
- Adaptabilidad: No hace falta ni mencionar que es responsive, y que se adapta a todos los dispositivos. Esta es una condición imprescindible hoy en día, en el que ya se conecta más gente a Internet a través de dispositivos móviles que a través de ordenadores.
- Comunidad: Genesis es el framework de WordPress más utilizado. Eso hace que haya una gran comunidad de desarrolladores detrás, y hace mucho más fácil encontrar respuestas en foros, blogs y redes sociales, ante cualquier duda que podáis tener.
En resumen: Genesis es un theme solvente, de gran calidad, ligero, rápido, accesible, y con una gran comunidad detrás. Eso lo hace interesante para cualquier proyecto hecho en WordPress.
Pero si es bueno para los usuarios, no os podéis imaginar lo bueno que es para los desarrolladores...
Para los desarrolladores
Ya seas programador, diseñador, desarrollador, implementador, webmaster, o cualquier otro rol en el que tengas que lidiar con varias instalaciones de WordPress... Genesis es una bendición.
¿Por qué? Porque todos los child themes de Genesis funcionan del mismo modo. Todos y cada uno de ellos tiene las mismas funcionalidades, action hooks, filter hooks, helpers, metodología, etc.
¿A qué me refiero con eso? Pues que puedes coger cualquier snippet (trozo) de código de un child theme y copiarlo a otro child theme, y funcionaría a la perfección.
Para muestra, un botón: Imaginemos que queremos que en lugar de tener la barra lateral a la derecha, la queremos a la izquierda. Tan fácil como colocar esta línea de código en functions.php:
add_filter( 'genesis_pre_get_option_site_layout', '__genesis_return_sidebar_content' );
Y ya está. Repito: Esto funcionará... siempre. Sea el child theme que sea. No tenemos que editar ninguna página, no tenemos que modificar código. Sólo esa línea y cualquier child theme de Genesis entenderá perfectamente la instrucción.
Intentad hacer lo mismo con otros temas. ¡Os vais a volver locos!
Y no estoy diciendo que no haya temas que os lo permitan hacer. Por supuesto que sí. Pero cada theme va a su bola. Algunos tendrán una página de opciones del theme en "Apariencia", algunos lo tendrán en el editor de posts, otros lo tendrán en el personalizador de WordPress, y algunos una remota pestaña en vete saber tú qué página escondida en el panel de control.
Si cada vez que instaláis un theme tenéis que aprender cómo funciona todo, vais a perder una de horas que no os podéis ni llegar a imaginar.
Debemos considerar que estoy hablando de profesionales que se dedican a esto. Personas que hacen varias instalaciones de webs a lo largo del año. ¿Os imagináis lo eficientes que podríais llegar a ser?
¿Que un cliente quiere quitar el pie de página? Ningún problema, ahí va el código:
remove_action( 'genesis_footer', 'genesis_do_footer' );
¿Que quiere poner su propio texto? Fácil, ahí va:
add_action( 'genesis_footer', 'pie_nuevo' ); function pie_nuevo() { ?><p>Texto a poner en el pie de página</p><?php }
¿Qué quiere poner una biografía de autor en cada post? Una línea de código:
add_filter( 'get_the_author_genesis_author_box_single', '__return_true' );
Y esto son sólo unos ejemplos, pero podría poner cientos de ellos. Si queréis saber más, tenéis muchos disponibles para descargar en los cursos de Genesis (nivel básico), Genesis (nivel intermedio), Curso Genesis (nivel avanzado) y Curso de Genesis Filters. Ahí podéis ver de todo.
Y repito: Este código va a funcionar siempre. ¿Os imagináis tener vuestra pequeña "colección de cachitos de código" en un documento, y sólo "copiar y pegar"? ¿O incluso mejor, tener esa colección en TextExpander? De esa forma sólo os tomaría medio segundo cada modificación. Hacer "fijo" el encabezado... ¡Zas! Añadir banners en la sidebar... ¡Zas! Quitar la fecha de los posts? ¡Zas!
Fijémonos que con esa aproximación sólo debes aprender las cosas una vez. ¡Una sola vez! Y luego puedes reaprovechar y reutilizar ese mismo código siempre que quieras. Y eso nos lleva al siguiente punto...
Usando Genesis... ¡Aprendes!
Hay un par de ventajas más que se derivan de usar Genesis, respecto a un theme estilo Divi, Canvas. Por cierto, si estáis interesados en ver las diferencias, os recomiendo leer el tutorial Genesis VS Canvas VS Divi.
Para empezar, no hay nada que no puedas hacer. A diferencia de las páginas de opciones de los themes, por código puede modificar lo que sea. En cambio, por muy completa (y compleja) que sea la página de opciones de un theme, siempre hay cosas que no vas a poder modificar. Y la Ley de Murphy dice que justamente eso que no se puede hacer desde el panel de control... es lo que va a querer el cliente.
Y otro factor a considerar, es que si usamos código... ¡Acabamos aprendiéndolo! A base de ver esos "pedazitos" de código que vamos reciclando, acabamos por empezar a entender lo que dice ahí. Los modificamos un poco, los combinamos, les añadimos algo de nuestra cosecha... Y eso nos lleva a mejorar nuestras habilidades, y a crecer profesionalmente. En cambio, usando un panel de control, poca cosa vamos a aprender, y sólo útil para ese theme.
Resumen y conclusión
Genesis es un parent theme para WordPress, ligero, responsive, accesible y de calidad, hecho con HTML5, CSS3 y schema.
Además, gracias a sus funciones como framework, nos permite desarrollar webs de forma fácil y rápida a través de código standard, elijamos el child theme que elijamos.
Yo personalmente lo recomiendo y uso para todos mis proyectos, y os recomiendo hacer lo mismo. Si queréis aprender, echad un vistazo a los cursos, y si queréis probarlo lo tenéis en la intranet de suscriptor.