Problemas con themes de WordPress

Antes de poder crear un theme creo que es importante saber cuáles son las cosas molestas de los themes para poder evitarlas. Eso no sólo resultará en un mejor theme, sino también en más satisfacción de quienes lo usen (nosotros incluídos).

La siguiente lista está basada en las cosas que más me molestaron de algunos (léase la mayoría) themes y – por lo tanto – yo recomiendo tenerlos en cuenta siempre

Texto no traducible

Yo tengo mi blog configurado en español y casi que no encontré theme que al ser activado en mi instalación todo estuviese en mi idioma. Lo que es peor, es casi seguro que el 90% del mismo va a estar en inglés porque quien lo hizo no tuvo en cuenta la internacionalización de WordPress. No sólo que WordPress tiene soporte para diferentes idiomas, debería de ser obligatorio que todo theme soporte diferentes idiomas.

Evitarlo es muy simple siguiendo 3 pasos:

  1. Toda cadena de texto en los templates PHP tiene que estar entre __() o _e()
  2. Toda cadena de texto tiene que ser una de las cadenas internacionalizables por defecto en WordPress
  3. Si hay una cadena de texto que no lo es, incluye un archivo de internacionalización con el theme

Caso omiso de opciones de configuración

WordPress es extremadamente flexible, y lo consigue ofreciendo muchas y variadas opciones de configuración en su interfaz de administración. Eso quiere decir que si uno configura algo, espera que el sistema lo tome en cuenta. Los themes mal hechos sin embargo, de forma muy similar a como ignoran el sistema de internacionalización de WordPress, tampoco tienen en cuenta algunas opciones que uno configura en el sistema.

El ejemplo más clásico es el formato de la fecha y la hora. No importa qué es lo que uno configure en el panel de administración, los themes por lo general usan la suya propia (que por lo genera es la que prefiere el autor). Aún cuando la API de WordPress usa aquella que uno determine a menos que el autor del theme especifique una explícitamente al momento de llamar a la función.

Es decir que el sistema está preparado para hacer las cosas bien; pero los autores de themes le pasamos por encima. Y eso no sólo hace que los usuarios estén descontentos sino que además nos genera más trabajo a quienes ayudamos a los usuarios (profesionalmente o no).

Funcionalidad innecesaria y hacks

Llamo hack a alguna solución medio esotérica para un posible problema del theme. ¿Por qué hay que evitarlos? La mayoría se rompen o dejan de ser necesarios al actualizar el sistema. Más aún, muchos no sólo que no son necesarios para muchos, sino que además hacen que el blog sea más lento o pesado.

Peor aún si el theme incluye muchas funcionalidades extras por fuera del theme en sí; por lo general, cosas en JavaScript y demás. Porque, por lo general, utilizan el framework de preferencia del autor del theme y éste viene incluído en el theme. ¿Cuál es el problema? Primero, si se actualiza el framework, el theme tiene que actualizarse (especialmente en cuestiones de seguridad). Segundo, si el usuario ya tiene instalado ese framework, no lo necesita dos veces; especialmente cuando la mayoría de los frameworks JavaScript se pueden agregar vía Plugins para que cualquier otro plugin y/o theme lo utilice.

Evitar este problema es tan sencillo como sólo utilizar funciones de la API de WordPress, y la menor cantidad posible. ¿Cuáles son esas? El Codex tiene una lista. Y para mayor comodidad, la gente de WoorkUp hizo un ayuda-memoria de 5 páginas con todo lo que pueden llegar a necesitar en este tema.

En caso que sea necesaria alguna funcionalidad extra siempre es más conveniente alguna de las alternativas:

  • Ofrecerla en un plugin
  • Hacerla opcional mediante opciones de theme

Optimizaciones innecesarias

Ahora está muy de moda que todo theme sea lo más liviano posible. Esto incluye utilizar técnicas como minimización de CSS y JavaScript, utilizar una sola imágen en lugar de varias, etc. No me parece mal que así sea, es importante que nuestros sitios sean rápidos en cargar. Pero hacer estas cosas hace que un theme sea prácticamente imposible de modificar luego.

Y el modificar un theme – aunque sea de forma muy ligera – no sólo es algo bastante común sino que ayuda a que se cree una mini-comunidad alrededor del mismo. Un theme versátil fomenta que más y más gente lo utilice; porque si bien puede no ser exactamente lo que estaba buscando, el que puedan modificar ese rincón a su gusto hace la diferencia.

Nuevamente, no estoy en contra de las técnicas antes mencionadas (u otras que puedan llegar a surgir en el futuro). Sólo estoy diciendo que la forma “compacta” no debería de ser la única forma en la que distribuyamos el theme. Al fin y al cabo, la minimización de CSS y JavaScript la puede hacer cualquiera utilizando herramientas on-line como YUI de Yahoo o inclusive se puede utilizar un plugin para ello y que cada usuario lo haga según sus preferencias y conveniencias.

Seguro que me olvidé de alguno ¿a ustedes se les ocurre alguno?