Contents
Introducción
La integración de Bootstrap dentro de bloques de Gutenberg en WordPress ofrece la potencia de un framework CSS robusto junto con la flexibilidad del editor por bloques. Este artículo detalla paso a paso cómo preparar el entorno, encolar los assets, registrar bloques personalizados y aprovechar al máximo los componentes y utilidades de Bootstrap, manteniendo una forma de trabajo modular y escalable.
1. Beneficios de Integrar Bootstrap en Gutenberg
- Consistencia de diseño: Bootstrap garantiza un conjunto unificado de estilos y componentes.
- Velocidad de desarrollo: gracias a clases predefinidas puedes maquetar rápidamente.
- Responsive out-of-the-box: grid system y utilidades para móviles sin configuraciones adicionales.
- Mantenibilidad: al usar un framework, actualizaciones de estilos y componentes son más sencillas.
2. Preparando el Entorno
Asegúrate de contar con:
- WordPress instalado (versión >= 5.0).
- Un tema hijo o plugin custom donde registrar tu bloque.
- Node.js y npm (para construir los assets con herramientas como wp-scripts).
Instala las dependencias necesarias en tu proyecto:
npm install @wordpress/scripts bootstrap popper.js jquery --save-dev
3. Encolando CSS y JavaScript de Bootstrap
Dentro de functions.php (o el archivo principal de tu plugin) encola los assets:
function mi_plugin_enqueue_assets() {
// Encolar CSS de Bootstrap
wp_enqueue_style(
bootstrap-css,
get_stylesheet_directory_uri() . /node_modules/bootstrap/dist/css/bootstrap.min.css,
array(),
4.6.0
)
// Encolar JS de Bootstrap y dependencias
wp_enqueue_script(
bootstrap-js,
get_stylesheet_directory_uri() . /node_modules/bootstrap/dist/js/bootstrap.bundle.min.js,
array(jquery),
4.6.0,
true
)
}
add_action(enqueue_block_assets, mi_plugin_enqueue_assets)
Con enqueue_block_assets te aseguras de que Bootstrap esté disponible tanto en editor como en frontend.
4. Registro de un Bloque Personalizado
El siguiente ejemplo muestra cómo registrar un bloque simple que aprovecha las clases de grid de Bootstrap:
const { registerBlockType } = wp.blocks
const { InspectorControls } = wp.blockEditor
const { PanelBody, SelectControl } = wp.components
registerBlockType(mi-plugin/columna-bootstrap, {
title: Columna Bootstrap,
category: layout,
attributes: {
size: { type: string, default: col-md-6 }
},
edit: ({ attributes, setAttributes }) => {
return [
setAttributes({ size })}
/>
,
Contenido de la columna
]
},
save: ({ attributes }) => {
return (
)
}
})
5. Estructura y Clases de Bootstrap
Bootstrap ofrece dos componentes clave para layout:
Componente | Descripción | Ejemplo de Clase |
---|---|---|
.container | Contenedor fijo responsivo | container, container-fluid |
.row | Fila para columnas | row |
.col | Columna de ancho variable | col, col-sm-4, col-md-6, etc. |
Al usar className
en el bloque, puedes imponer cualquier combinación de utilidades de Bootstrap.
6. Atributos Dinámicos y Controles
Para hacer tu bloque más versátil:
- Define atributos en
attributes
, permitiendo binding de valores. - Utiliza componentes de la librería @wordpress/components para paneles de control.
- Implementa
InnerBlocks
cuando necesites anidar otros bloques.
7. Ejemplo Completo: Bloque “Tarjeta Bootstrap”
En este bloque usaremos la estructura de tarjetas:
registerBlockType(mi-plugin/card-bootstrap, {
title: Tarjeta Bootstrap,
icon: welcome-write-blog,
category: layout,
attributes: {
title: { type: string, default: Título de la tarjeta },
text: { type: string, default: Texto de ejemplo... },
imageURL: { type: string, default: }
},
edit: ({ attributes, setAttributes }) => {
return (
setAttributes({ imageURL: media.url })}
allowedTypes={[image]}
value={attributes.imageURL}
render={({ open }) => (
)}
/>
setAttributes({ title })}
/>
setAttributes({ text })}
/>
)
},
save: ({ attributes }) => {
return (
{ attributes.imageURL
}
{ attributes.title }
{ attributes.text }
)
}
})
8. Buenas Prácticas
- Lazy loading de imágenes (
loading=#39lazy#39
). - Minimizar el CSS personalizado, confiando en utilidades de Bootstrap.
- Separar lógica de edit y save, manteniendo el render limpio.
- Usar nombres de bloque únicos:
namespace/block-name
.
9. Depuración y Optimización
Para perfilar tu bloque:
- Activa WP_DEBUG y SCRIPT_DEBUG en wp-config.php.
- Usa Lighthouse para evaluar rendimiento y accesibilidad.
- Revisa la consola del navegador para detectar errores de React o CSS.
10. Recursos Relevantes
Conclusión
Integrar Bootstrap en bloques de Gutenberg combina lo mejor de dos mundos: la rapidez y consistencia de un framework maduro con la flexibilidad del editor de bloques de WordPress. Siguiendo esta guía podrás crear componentes modulares, responsivos y fáciles de mantener. Aplica buenas prácticas de desarrollo y aprovecha la comunidad y documentación oficial para profundizar en cada aspecto.
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |