Herramienta CLI para generar plugins de WordPress basados en el boilerplate de Close Marketing. Ahorra tiempo y mantén la consistencia en todos tus proyectos.
- 🎯 Generación rápida: Crea un plugin completo en segundos
- 🔧 Personalizable: Elige solo las características que necesitas
- 📝 Variables dinámicas: Reemplaza automáticamente nombres, prefijos y constantes
- 🎨 Interactivo: Modo con prompts o línea de comandos
- ♻️ Reutilizable: Basado en el boilerplate probado de Close Marketing
npm install -g @closetechnology/scaffoldsAhora puedes usar close-scaffold o wp-scaffold desde cualquier directorio.
git clone https://github.com/closemarketing/close-scaffolds.git
cd close-scaffolds
npm install
npm linkgit clone https://github.com/closemarketing/close-scaffolds.git
cd close-scaffolds
npm install
npm startclose-scaffold listMuestra todos los scaffolds disponibles:
pluginwp- WordPress Pluginblock- Gutenberg Block (próximamente)
El modo interactivo te guía paso a paso:
close-scaffold create pluginwp
# o desde el repositorio
npm startEjemplo de sesión interactiva:
? Plugin name: Mi Super Plugin
? Plugin description: Plugin para gestión de contenido
? Author: Tu Nombre
? Plugin prefix (for functions): msp
? Output directory: ./
? Select features to include:
◉ Custom Post Types
◉ Custom Login
◉ Theme Integration
◯ WooCommerce Integration
◯ Blocks
◯ Shortcodes
Para scripts o automatización:
close-scaffold create pluginwp \
--name "Mi Plugin" \
--prefix "mp" \
--description "Descripción del plugin" \
--author "Tu Nombre" \
--output "./"--name, -n: Nombre del plugin--prefix, -p: Prefijo para funciones (solo letras minúsculas y guiones bajos)--description, -d: Descripción del plugin--author, -a: Autor del plugin--output, -o: Directorio de salida (por defecto:./)
El scaffold genera plugins con las siguientes características:
- Estructura básica del plugin
- Sistema de constantes y prefijos
- Internacionalización (i18n)
- Custom Login personalizado
- Custom Post Types (Testimonios y Empresas)
- Integración con tema
- Bloques de Gutenberg
- Shortcodes
- Integración con WooCommerce
mi-plugin/
├── plugin.php
├── readme.txt
└── includes/
├── custom-login/
│ ├── class-ccaa-admin.php
│ ├── logo-login.svg
│ └── logo-mini.svg
├── post-types/
│ ├── cpt-testimonios.php
│ └── cpt-empresas.php
├── theme/
│ ├── functions.php
│ ├── style.css
│ ├── style-editor.css
│ └── assets/
├── blocks/ (opcional)
├── shortcodes/ (opcional)
└── woocommerce/ (opcional)
El scaffold reemplaza automáticamente las siguientes variables:
{{PLUGIN_NAME}}: Nombre del plugin{{PLUGIN_DESCRIPTION}}: Descripción del plugin{{PLUGIN_AUTHOR}}: Autor del plugin{{PLUGIN_SLUG}}: Slug del plugin (nombre en minúsculas con guiones){{PREFIX}}: Prefijo para funciones (minúsculas:msp_){{PREFIX_UPPER}}: Prefijo para constantes (mayúsculas:MSP_){{CONSTANT_NAME}}: Nombre completo del plugin en mayúsculas (MI_SUPER_PLUGIN_){{CLASS_NAME}}: Nombre de clases{{TEXT_DOMAIN}}: Dominio de texto para i18n{{VERSION}}: Versión del plugin{{CURRENT_YEAR}}: Año actual
# Generar plugin interactivamente
npm start
# Respuestas del prompt:
# Plugin name: Mi Super Plugin
# Plugin description: Plugin para gestión de contenido
# Author: Mi Nombre
# Plugin prefix: msp
# Output directory: ./
# Features: [✓] Custom Post Types [✓] Custom Login [✓] Theme Integration
# Resultado: ./mi-super-plugin/- EXAMPLES.md - Ejemplos de uso detallados
- Ver el código fuente del boilerplate en
../
- ❌ Manual: Copiar carpetas, buscar/reemplazar en múltiples archivos, propenso a errores
- ✅ Scaffold: Un comando, todo automatizado, sin errores
- ❌ WP-CLI: Estructura genérica, sin personalización de Close Marketing
- ✅ Scaffold: Estructura probada, incluye login customizado, post types, tema
- ❌ NPX: Requiere publicar en npm, más complejo de mantener
- ✅ Scaffold: Local, fácil de modificar, control total
Las plantillas están en templates/:
templates/
├── plugin.php # Plantilla del archivo principal
└── readme.txt # Plantilla del readme
Variables disponibles en plantillas:
{{PLUGIN_NAME}}- Nombre del plugin{{PLUGIN_DESCRIPTION}}- Descripción{{PLUGIN_AUTHOR}}- Autor{{PREFIX}}- Prefijo de funciones{{CONSTANT_NAME}}- Nombre de constantes{{TEXT_DOMAIN}}- Dominio de texto{{VERSION}}- Versión{{CURRENT_YEAR}}- Año actual
Edita lib/generator.js para:
- Cambiar cómo se procesan los archivos
- Añadir nuevas características
- Modificar el sistema de reemplazo de variables
- Edita
bin/cli.jsy añade la opción en el prompt:
{
name: 'Mi Nueva Feature',
value: 'mi-feature',
checked: false
}- Edita
lib/generator.jsy añade la lógica de copia:
if (features.includes('mi-feature')) {
await this.copyDirectory(
path.join(this.sourceDir, 'includes/mi-feature'),
path.join(includesDir, 'mi-feature'),
templateData
);
}rm -rf nombre-del-plugin
npm startchmod 755 /directorio/destinorm -rf node_modules package-lock.json
npm installchmod +x bin/cli.jsEste scaffold es para uso interno de Close Marketing, pero puedes:
- Crear issues para reportar bugs
- Proponer mejoras en la estructura
- Sugerir nuevas características
- ✨ Primera versión del scaffold
- 🎯 Modo interactivo con prompts
- 📝 Sistema de plantillas con variables dinámicas
- 🔧 Selección de características opcional
- 📦 Generación completa de plugins
GPL-2.0+ - Misma licencia que WordPress
Desarrollado por Close Marketing 🚀