5 Ideas para hacer temas ágiles en WordPress

Ya sea que desarrolles temas para tu propio uso o para distribuirlos, debes considerar que un sitio no debe permanecer estático durante meses o años.

Al contrario, un sitio tiene que estar siendo optimizado constantemente, ajustado a las necesidades de sus usuarios, midiendo cada vez cambio y viendo qué da mejores resultados.

¿Tu tema es lo suficientemente ágil como para adaptarse fácilmente? Aqui te propongo 5 ideas para ayudarte a que lo sea.

1. Utiliza la API de widgets de WordPress para hacer tu tema más flexible. #

Aunque originalmente fueron pensados para poner cositas en la barra lateral de tu blog (¡internamente se les siguen llamando sidebars!), la API de widgets de WordPress es sumamente poderosa y permite atacar el diseño de tu sitio desde una perspectiva modular.

En un principio, a algunos les parecerá demasiado engorroso hacer 3 o 4 pasos para crear areas widgetizadas en sus temas en vez. Pero a largo plazo, esta flexibilidad otorga beneficios tangibles, como la posibilidad de iterar el diseño de un sitio de una forma ágil, cambiando y moviendo contenido de un modulo a otro sin necesidad de tocar una sola línea de código.

2. Separa el contenido de la presentación. #

Este suena como un consejo tonto que se da por hecho en 2010, pero la verdad es que hay una gran cantidad de diseñadores de temas que siguen mezclando su HTML, PHP y CSS lo que crea una gran variedad de problemas a la hora de hacer cambios y actualizaciones a un sitio.

Si tu ya lo haces, te propongo llevar esta idea un poco más allá: no solo separar el contenido y la presentación, sino dividir la presentación en varias capas de una manera ordenada, por ejemplo: layout, tipografía, colores y fondos. Esto haría más simple que en un futuro alguien quisiera hacer cambios simples al CSS sin miedo a romperlo todo.

3. Organiza tu código de una forma modular. #

El peor y más inmantenible código que he visto en mi vida lo he visto en temas y plugins de WordPress, donde se dan los más enredados espaghettis de código embebidos todos en un solo archivo. Para un tema simple, de un tipico blog, no existe mucho problema, pero cuando quieres hacer sitios con funcionalidades más complicadas es buena idea empezar a pensar en a modularidad.

Un ideal sería separarlo todo conforme al paradiga MVC, donde el acceso a los datos, la lógica del tema y las vistas estuviera todo separado, pero puedes empezar por crear plantillas para cada tipo de post, una cosa que WordPress permite de fábrica.

Por ejemplo, en lugar de tener solo un index.php lleno de condicionales tipo if (is_page()) { ... } crea home.php para la página de inicio, single.php para posts individuales, page.php para páginas, etc.

Si quieres saber como funciona la jerarquía de páginas en WordPress, mira este diagrama.

4. Presenta un panel de opciones. #

No es cosa fácil hacer un panel de configuración en WordPress por eso casi siempre preferimos asumir algunas cosas y escribirlas directamente en el código. Sin embargo, la posibilidad de hacer pequeños cambios y medir su eficacia con solo mover opciones en un panel de la administración de WP es un alivio.

De lo que se trata no es de llenar este panel con miles de opciones, sino dejar algunas pocas opciones importantes para que el usuario pueda modificar su tema sin saber la diferencia entre PHP y HP. Por ejemplo, puedes permitirle elegir que enlaces aparecerán en su navegación, la imagen del encabezado, el ancho de las columnas y el mensaje del footer.

5. No olvides los hooks. #

Junto con los widgets y el panel de opciones esta es la tercera pieza clave para que los usuarios puedan modificar su tema sin necesidad de modificar ningún código. Afortunadamente no hace falta incluir cada feature posible en tu tema puesto que lo maravilloso (y atemorizante) de WordPress reside en el enorme ecosistema de plugins gratuitos y premium disponibles.

Pero para que la mayoría de estos plugins puedan funcionar, el tema necesita incluír algunos hooks que permitirán a estos plugins engancharse y ampliar sus funcionalidades. Aquí está la lista de estos enganches, para que no olvides colocarlos en tu próximo tema.

O puedes tomar el camino fácil y usar un framework #

Muchas de estas ideas fueron la base para crear DTE, el framework para programar temas avanzados — y ágiles— de WordPress de una forma simple y rápida.

Obviamente yo recomiendo DTE, pero usar algo más simple como Thematic o Hybrid puede ser una opción perfectamente válida.