12. The WP Functions Library (I)

Vamos a hacer otra parada técnica en nuestro aprendizaje sobre la creación de plugins. En esta ocasión vamos a crear un plugin que nos va a proporcionar un Custom Post Type que emplearé para montar ‘The WP Functions Library’, es decir, una biblioteca de funciones para WordPress.

 

Primera disyuntiva: plugin o theme

Efectivamente, aquí está la primera pregunta, que voy a responder según mi opinión personal:

  • Un tema configura la forma en que se va a ver la información contenida en nuestro sitio WordPress.
  • Un plugin modifica, de alguna manera, el funcionamiento de WordPress.

Lo que yo quiero hacer es crear una serie de artículos con unos datos específicos (campos personalizados – Custom Fields), que se introducirán en su pantalla de edición exclusivamente (Metabox) y que serán sólo para estos artículos (Custom Post Type). Además, estos artículos tendrán su propia categorización (Taxonomy).

Está claro que esto supone una modificación en el funcionamiento interno de WordPress, ya que estos artículos, y sus especificidades, quiero que continúen existiendo al margen del tema que yo tenga instalado en mi sitio. Por tanto, se deben crear mediante un plugin.

Ahora bien, para mostrar las características específicas de estos artículos, deberemos generar una serie de plantillas que incluyan esta información adicional, por lo que entonces estaremos trabajando en el theme. Para ello, estudiaremos la posibilidad de modificar un tema mediante un plugin, o mediante un tema hijo, o directamente en el directorio del tema. Pero eso ya se verá en su momento oportuno.

 

Pero Sergio, ¿qué quieres hacer?

Ahora que estoy desarrollando mi nuevo tema para WordPress, Ancora, como soy nuevo en esto de programación WP, me sucede a menudo que, al hacer algo me pregunto aquello de ¿como hice esto?, por lo que tengo que buscarlo en los archivos de plantilla del tema Minority. ¿No sería más fácil disponer de una librería/biblioteca de funciones, o de trozos de código, convenientemente catalogada, a la que acudir a buscar ese código que necesito? Total, ahora no tengo una gran cantidad de ‘fichas’ (una forma coloquial de llamarlo, pero creo que acertada), y, si le añado una descripción, los datos de entrada y salida que necesita y genera, indico en qué fuente me inspiré para su creación, y le añado los archivos adjuntos (attachments) necesarios (tipo archivos JavaScript, CSS, etc), la faena será mucho más sencilla. Además, también podemos disponer de las diferentes versiones, fechas, modificaciones, etc.

En fin, esta es mi declaración de intenciones. A partir de ella, vamos a ver cómo serán estas fichas.

 

Las fichas de The WP Functions Library

Estas fichas contendrán la siguiente información:

Artículo general:

  • Descripción. Descripción de qué hace y cómo lo hace.
  • Código. El código tal cual con los comentarios e informaciones incluidos.
  • Notas. Indicaciones oportunas. Aquí se indicarán también las notas de la versión, así como la ubicación del snippet.
  • Entrada. Parámetros requeridos de entrada y rangos de valores.
  • Salida. Datos de salida que genera y rangos de valores.

Metadatos:

  • Versión. Versión del snippet.
  • Autor.
  • Creación. Fecha de creación.
  • Modificación. Fecha de la última modificación.
  • Fuentes. Vínculo a la fuente.
  • Relacionado. Si es una modificación de otro snippet, vínculo al original.

Adjuntos (attachments). Si se trata de algún elemento que emplea código adicional, tipo JavaScript, o que requiere de algún CSS específico, se incluirá la posibilidad de descarga del archivo adjunto.

 

Proceso de desarrollo

Por lo que ya llevo mirado del tema, el proceso de desarrollo del plugin será el siguiente:

  1. Creación del Custom Post Type, generando el tipo específico de artículos para las fichas.
  2. Integración de los Custom Fields en un metabox que generaremos para tal fin.
  3. Incorporación de las taxonomías.
  4. Desarrollo del front-end, incluidos submenús, mediante plantillas específicas. Aquí veremos cómo lo hacemos (modificación theme, tema hijo, estudio posibilidades del plugin, …).
  5. Distro del plugin.

Obviamente, en función del estudio realizado, el orden del proceso podrá variar ligeramente (vamos, por causas ajenas a nuestra voluntad).

 

Conclusiones

Cuando justo acabo de pasar el ecuador del manual de plugins del Codex de WordPress, en su traducción, me ha parecido conveniente hacer otra parada técnica, para recopilar todo lo aprendido hasta aquí, y reunir toda la información obtenida, aplicándola en un desarrollo específico.

El título The WP Functions Library quizá pueda sonar a ‘autobombo’, pero es la idea que se me ha ocurrido. Por lo menos, creo que podrá servir para dar una idea a otros posibles desarrollos.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *