Enrique J. Ros

Añadir funciones personalizadas a las webs de tus clientes

Me doy cuenta de que cada día me siguen más no ya usuarios de WordPress sino implementadores e, incluso, otros desarrolladores, lo cual por supuesto es una alegría y un orgullo. Así que, ¿por qué no dedicar de vez en cuando una entrada a alguna herramienta o tips que puedan serles (seros) útiles.

Y eso voy a hacer hoy. Ya he contado alguna vez cómo incluir de forma correcta las funciones personalizadas en tu web por medio de un plugin propio (por favor, no uses el functions.php). También he hablado de lo que son los mu-plugins. Hoy voy a combinar ambas cosas y una herramienta magnífica para ver cuál es la mejor forma (a mi modo de ver) de incluir tus funciones personalizadas en las webs de tus clientes.

Funciones personalizadas en WordPress

WordPress es la repera. Todo el mundo lo dice y es verdad. Te permite crear una web sin saber escribir ni una sola línea de código, sin saber lo que es el DOM, cómo dar más espacio al logo en la cabecera de una plantilla o qué es un objeto en POO. Es fantástico.

Pero claro, así uno está atado a lo que viene «de casa». El verdadero potencial de WordPress, la verdadera «bestia», se desata cuando uno es capaz de moldearlo y manipularlo «a su antojo» (aunque muchas veces se resista, y si eres desarrollador sabes de lo que hablo).

La cuestión es que cuando se personaliza una web, ésta no puede venir con instrucciones del tipo Si cambias de theme esto dejaría de funcionar o No puedes desactivar este plugin porque ahí hay varias cosas que….

Una cosa es hacer un plugin personalizado para dar ciertas funcionalidades a una web (entonces sí, el modo correcto es un plugin que se pueda desactivar cuando ya no sea necesario) y otra es meter todas las funciones que personalizan un site dentro de un plugin, y dejárselo ahí a tu cliente. No hablemos ya de usar el functions.php

En fin, en esto, como en todo, cada maestrillo tiene su librillo. Pero, por si te es útil, te diré cómo lo hago yo.

Code Snippets

Si eres desarrollador estoy seguro de que ya conoces esta maravilla de plugin. Code Snippets te permite ir añadiendo funciones personalizadas o «trozos» de código (code snippets) en un custom post type, de forma que cada uno se ejecute de forma independiente y pueda ser activado y desactivado cada vez que quieras. Una maravilla de plugin, tanto en lo referente al concepto como a la ejecución.

Con Code Snippets puedes ir añadiendo funciones y códigos personalizados a una web mientras la tienes en desarrollo, de forma ordenada: un snippet, una función. Activa, desactiva, reescribe… En fin, una gozada.

Creando tu propio mu-plugin

Pero la mejor característica de Code Snippets es que te permite exportarlos. Y no sólo para importarlos en otra web (algo útil para los snippets más o menos comunes, que se utilizan en muchas webs, pero no tanto para las personalizaciones específicas) sino que también te permite exportarlos en un archivo PHP.

Basta con seleccionarlos todos (o los que quieras exportar) y elegir la acción en lote Export to PHP para que te genere un archivo PHP que contiene todos los snippets, con el título y la descripción que les hayas puesto a cada uno como comentarios al principio de su correspondiente código. Una maravilla.

¿Y qué hacer a continuación? Pues fácil: le pones al archivo unas cabeceras, lo activas en la web como mu-plugin, y desinstalas Code Snippets. Fácil, limpio, eficaz.

Ventajas de incluir las personalizaciones a tus clientes en un mu-plugin

Si ya cuentas con cierta experiencia en estas lides, habrás visto rápidamente las ventajas:

Y tú, ¿cómo sueles hacerlo?

Salir de la versión móvil