Genera un plugin de bloque Gutenberg personalizado
Escribir un bloque Gutenberg desde cero implica montar el toolchain de build, aprender la block API y entender qué atributos necesitan render server-side. Es abarcable pero lleva una tarde incluso con experiencia.
Un plugin generado te ahorra esa tarde. Describes el bloque — campos, controles, cómo debe renderizar — y el plugin llega con esbuild/wp-scripts montados, las funciones edit/save escritas y render dinámico opcional vía render_callback.
¿Por qué generarlo en vez de instalar un plugin existente?
Block builders genéricos como Kadence Blocks o GenerateBlocks están bien pero añaden toda su librería al editor, incluyendo bloques que no usarás. ACF Blocks simplifica la autoría pero te ata a ACF Pro (49€/año).
Un plugin con un solo bloque añade exactamente ese. Registra solo sus propios assets, sigue las convenciones oficiales de @wordpress/create-block y es fácil de traspasar a otro dev porque se parece a los tutoriales oficiales.
Sweet spot: un equipo interno de marketing necesita un bloque "pricing row" a medida. Lo generas, commiteas y los editores lo ven a la siguiente carga. Sin licencias que gestionar.
Prompt de ejemplo
Este es el tipo de descripción que genera este plugin. Puedes partir de aquí y ajustar lo que necesites antes de generar.
Nombre del plugin: Acme Pricing Row
Registrar bloque acme/pricing-row con atributos:
- title, price, price_period (default "/ mes"), features (array), cta_label, cta_url, highlighted (bool).
Edit component:
- Inspector: TextControl para title/price/period/cta, ToggleControl para highlighted.
- In-content: título editable, precio editable, features como InnerBlocks "acme/pricing-feature" O repeater simple.
Save: return null (render dinámico) para estilar server-side.
render_callback PHP: <div class="acme-pricing-row is-highlighted"> con markup que case con el tema.
Build: @wordpress/scripts. block.json para assets.
Stylesheet único cargado solo en páginas con el bloque.Qué suele incluir el plugin generado
- block.json registrando atributos, categorías y assets
- edit.js con InspectorControls y zonas editables
- Render dinámico vía PHP render_callback
- Stylesheet scoped cargado solo cuando se usa
- InnerBlocks opcional
- Config @wordpress/scripts commiteada
Atributos, controles y estilo de render vienen del prompt. Para librería de 5+ bloques relacionados, descríbelos juntos y los sacamos bajo un plugin con utilidades compartidas.
Preguntas frecuentes
¿Funciona con temas FSE?
Sí. Registrado vía block.json, aparece donde se soportan bloques: páginas, posts, templates, template parts.
¿Puedo editar el PHP de salida?
Sí. El render_callback es una función legible; ediciones comunes son seguras.