Contents
Introducción
En el ecosistema de WordPress, el editor de bloques (Gutenberg) se ha convertido en la forma preferida para crear contenido dinámico y flexible. Una de sus mayores ventajas es la posibilidad de crear bloques personalizados ajustados a necesidades muy específicas. El núcleo de este proceso es la función registerBlockType, que permite registrar cada bloque con todas sus propiedades y comportamientos.
¿Qué es registerBlockType
registerBlockType es la API de JavaScript que proporciona WordPress para definir nuevos bloques en el editor. Está documentada en el repositorio oficial de desarrolladores de WordPress y es el punto de partida para la creación de bloques tanto simples como complejos.
Puede consultarse la documentación oficial en developer.wordpress.org.
Preparación del Entorno
Requisitos previos
- Node.js (>= 14.x) y npm o yarn
- WordPress 5.0 o superior con Gutenberg activado
- Conocimientos básicos de JavaScript moderno (ESNext) y React
Instalación de herramientas
- Crear un plugin o un tema con carpeta
src. - Ejecutar
npm init -yy luegonpm install @wordpress/scripts --save-dev. - En
package.json, agregar un script:
scripts: {
build: wp-scripts build,
start: wp-scripts start
}
Estructura básica de un bloque
Un bloque se compone, esencialmente, de:
- registerBlockType: registro y configuración.
- edit: interfaz de edición en el editor.
- save: representación en el front-end.
Registrar un bloque con registerBlockType
La sintaxis básica es:
import { registerBlockType } from @wordpress/blocks
registerBlockType( mi-plugin/mi-bloque, {
title: Mi Bloque,
icon: smiley,
category: widgets,
attributes: {
contenido: {
type: string,
source: html,
selector: p
}
},
edit: ( props ) => {
// Interfaz de edición
},
save: ( props ) => {
// Salida HTML
}
} )
Parámetros principales
| Campo | Descripción | Ejemplo |
|---|---|---|
| name | Identificador único del bloque. | mi-plugin/mi-bloque |
| title | Título que verá el usuario. | Mi Bloque Personalizado |
| icon | Icono en el selector de bloques. | format-image |
| category | Categoría donde aparece. | common |
| attributes | Propiedades que almacena el bloque. | Objeto JSON |
| edit | Componente de edición (React). | Función o clase |
| save | Función que devuelve HTML. | Función |
Personalización avanzada
Más allá de la configuración básica, podemos:
- Atributos complejos: usar
attribute.source=querypara colecciones. - InnerBlocks: permitir bloques anidados (layouts configurables).
- Bloque dinámico: usar PHP con
render_callback. - Variaciones: predefinir estilos o contenidos iniciales.
- Soporte de estilos: declarar
supports: { color: true, spacing: true }.
Publicar y probar el bloque
1. Ejecutar npm run build para generar build/index.js y build/index.css.
2. Encolar los archivos en PHP (wp_enqueue_script y wp_enqueue_style) dentro de tu plugin o tema.
3. Acceder al editor y buscar tu bloque en la categoría asignada.
4. Probar su edición, atributos y guardado de contenido.
Buenas prácticas
- Namespace único: evita conflictos con otros plugins.
- Documentación interna: comenta tu código con JSDoc.
- Pruebas de PHP y JS: utiliza PHPUnit y Jest.
- Accesibilidad: asegúrate de cumplir WCAG en la interfaz del bloque.
- Internacionalización: utiliza funciones
__y_xcon dominio de texto.
Recursos adicionales
- WordPress Block Editor Handbook
- Repositorio oficial de Gutenberg (GitHub)
- MDN Web Docs (JavaScript y CSS)
Con la potencia de registerBlockType, es posible crear bloques totalmente adaptados a cualquier proyecto: desde simples cajas de información hasta galerías, formularios o módulos interactivos. Explora, experimenta y contribuye al crecimiento del ecosistema Gutenberg.
|
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |
