¿Quieres empezar a construir tus propios plugins de manera profesional?, ¿No sabes qué estructura usar?, en este artículo aprenderás cómo usar un servicio de generación de plugins y entenderás la estructura base que genera.
Generalidades
Existen diferentes alternativas que puedes usar para tener una estructura base para construir un plugin, una de las que te recomiendo es WordPress Plugin Boilerplate Generator (wppb), la ventaja de este servicio es que te renombrará todos los archivos generados con el nombre que definas al crear el plugin.
Generación del plugin
Vamos a generar nuestro plugin con el servicio wppb, al ingresar veremos un formulario en el cual podemos llenar la metadata que tendrá el Plugin.

Al clickear build plugin, ya tendremos nuestro instalador, será un archivo .zip con el slug como nombre de archivo.

Tras instalar este archivo y ver la lista de plugins, aparecerá algo similar a lo siguiente

Estructura del plugin generado
El plugin generado tiene una estructura de archivos y carpetas, tal como se ve en la siguiente imagen.
1- Archivos en la raíz del plugin
- En el archivo plugin-ejemplo.php podemos cambiar la metadata adicional del plugin como: descripción, versión, text-domain, etc.
- También tenemos un archivo llamado uninstall.php para colocar código que se ejecutará al desinstalar el plugin.
2- Carpeta Includes
En esta carpeta están las clases que se usarán en el plugin, podemos agregar archivos de clases adicionales que serán reutilizados por la parte pública (public) y por la administración (admin)
- En el archivo class-plugin-ejemplo.php puedes agregar tus hooks, acciones y filtros tanto para la parte pública como para la administración
- El archivo class-plugin-ejemplo-loader.php permite la ejecución de los hooks, no deberías tocar este archivo
- En el archivo class-plugin-ejemplo-i18n.php este el código para cargar el text domain del plugin, necesario para la traducción
- class-plugin-ejemplo-activator.php y class-plugin-ejemplo-desactivator.php tienen funciones para ejecutar código en la activación o desactivación del plugin respectivamente
3- Carpeta Languages
Aquí irán los archivos .pot, .po y/o .mo que se usarán para las cadenas de traducción.
4- Carpeta Public
Esta carpeta servirá para ejecutar código que será mostrado en el front-end del sitio, unido con los hooks públicos que has definido en el archivo /includes/class-plugin-ejemplo.php
- El archivo class-plugin-ejemplo-public.php es el archivo más importante, es el punto de entrada para la parte pública en donde definirás funciones generales
- La carpeta partials contendrá archivos .php que serán usados usualmente como vistas para mostrar las pantallas de tu plugin
- La carpeta css y js contendrán archivos css y javascript respectivamente que serán usado para la parte pública del plugin
5- Carpeta Admin
Esta carpeta servirá para ejecutar código que será mostrado en el back-end del sitio, unido con los hooks de administración que has definido en el archivo /includes/class-plugin-ejemplo.php
- El archivo class-plugin-ejemplo-admin es el archivo más importante, es el punto de entrada para la parte de administración en donde definirás funciones generales
- La carpeta partials contendrá archivos .php que serán usados usualmente como vistas para mostrar las pantallas de tu plugin en la administración
- La carpeta css y js contendrán archivos css y javascript respectivamente que serán usado para la parte de administración del plugin
Conclusión
Partir de un plugin base es una buena práctica, ahorrarás tiempo al no partir de cero, además tendrás una estructura base que seguir y tener más organizado tu código.
Parece que el generador wppb.me ha dejado de funcionar, al intentar ejecutarlo te envía a un dominio (https://app.wppb.me/) con el que no se puede conectar.
Hola, efectivamente, gracias por avisar, he actualizado el artículo ya que la url ahora es: http://wppb.io/ , aunque ahora hay que cambiar el nombre del plugin generado manualmente, espero lo mejoren próximamente.
https://wppb.me/
Hola, gracias por el aviso, he cambiado nuevamente la url. Saludos.