Bootstrap Blocks


Bootstrap Gutenberg Blocks for WordPress. This plugin adds Bootstrap components and layout options as Gutenberg blocks.


  • Supports Bootstrap v5 and v4
  • Support for CSS grid (experimental)
  • Fully customizable with filters
  • Configuration via option page or programmatically with constants
  • Block templates can be overwritten in your theme

The full documentation of this plugin can be found on GitHub:

Available Blocks



  • Fluid: If enabled the container will use the full available width, spanning the entire width of the viewport.
  • Fluid Breakpoint: Used to enable responsive containers. This feature only works with Bootstrap v4.4+. The container will use 100% of the width until the specified breakpoint is reached, after which the defined max-widths will apply for each of the higher breakpoints.
  • Margin After: Define a margin which should be added after the container.



  • Template: Choose from a predefined template for the inner column blocks.
  • No Gutters: Disable gutters between columns.
  • Alignment: Horizontal alignment of inner column blocks.
  • Vertical Alignment: Vertical alignment of inner column blocks.
  • Editor stack columns: Displays stacked columns in the editor to enhance readability of block content.
  • Horizontal Gutters: Size of horizontal gutters.
  • Vertical Gutters: Size of vertical gutters.
  • CSS Grid Gutters: Size of gutters when CSS grid is used.



  • Sizes for all breakpoints (xxl, xl, lg, md, sm, xs): How much space the column should use for the given breakpoint.
  • Equal width for all breakpoints (xxl, xl, lg, md, sm, xs): If enabled column will spread width evenly with other columns.
  • Background Color: Set background color to column.
  • Content vertical alignment: Align content vertically in column. This option is only needed if a background color is set. Otherwise use the Alignment option of the outer row block.
  • Padding: Define padding inside the column.



  • Style: Choose the styling of the button.
  • Open in new tab: Choose if link should be opened in a new tab.
  • Rel: Set rel attribute of the link.
  • Alignment: Horizontal alignment of the button.

Supported Bootstrap versions

This plugin supports Bootstrap v4 and v5.

The version can be selected in the plugin settings (Settings > Bootstrap Blocks) or by defining the WP_BOOTSTRAP_BLOCKS_BOOTSTRAP_VERSION constant in the wp-config.php file:

  • Bootstrap 4 (default): define( 'WP_BOOTSTRAP_BLOCKS_BOOTSTRAP_VERSION', '4' );
  • Bootstrap 5: define( 'WP_BOOTSTRAP_BLOCKS_BOOTSTRAP_VERSION', '5' );

Possible values right now are '4' or '5'. By default Bootstrap version 4 is selected.

CSS Grid

The CSS grid (supported with Bootstrap >= 5.1.0) can be enabled in the plugin settings (Settings > Bootstrap Blocks) or by defining the WP_BOOTSTRAP_BLOCKS_ENABLE_CSS_GRID constant in the wp-config.php file:


When the CSS grid is enabled the row and the column blocks will use custom templates for the rendering process:

  • Row: row-css.grid.php
  • Column: column-css-grid.php

The support is still experimental since it’s also marked as experimental in the Bootstarp library. Please read the official Bootstrap documentation to get more information on how to use it.

Bootstrap library

Please be aware that this plugin does not include the Bootstrap library in your website. You need to do this by yourself. We decided not to include the library so that you can modify Bootstrap to your own needs before loading it.

You’ll find an example how to include it in your theme’s function.php in the documentation.


All blocks are implemented as dynamic blocks. This makes it possible to overwrite the template of a block in your theme.

To overwrite a block template create a folder called wp-bootstrap-blocks/ in your theme directory. You can copy the original template from wp-bootstrap-blocks/src/templates/<blockname>.php as a starting point and adjust it to your needs.


  • WordPress >= 5.0
  • PHP >= 5.6

Further Information


  • Row block
  • Column block
  • Column block (further settings)
  • Container block


  1. Upload the wp-bootstrap-blocks directory into the /wp-content/plugins/ directory
  2. Activate the plugin through the Plugins menu in WordPress
  3. Start adding blocks from the Bootstrap Blocks category


Which versions of Bootstrap are supported?

This plugin supports Bootstrap v4 and v5.

Is Bootstrap included?

No. This plugin doesn’t load the Bootstrap library for you. You have to do this by yourself in your theme. Please read more about this in the documentation.

Have you found a bug or do you have a feature request?

Please create a new GitHub issue and let us know:


Very good plugin for providing container, row and column functionality for custom Bootstrap themes (my use-case). This is so much better than the default WordPress columns. Just what I was looking for. Thanks for the plugin. 🙂
And you have all the foundations you need for building quick, bespoke, and easy-to-manage websites for your clients. I'll be using this for all my projects from now on. Using ACF Pro to build the custom blocks required, and using these very handy container/row blocks to place my custom ACF blocks inside of. Just perfect.
I started using Bootstrap Blocks because I wanted a better WordPress back-end experience instead of actually coding raw code in a file. With Bootstrap Blocks, I can have a better back-end experience and have a peace of mind knowing that the developers working on the plugin are using Bootstrap best practices. The plugin is also regularly maintained and updated to work at its peek performance. I'm very happy with Bootstrap Blocks and I highly recommend for any developer who is working with WordPress + a Bootstrap theme.


“Bootstrap Blocks” 是开源软件。 以下人员对此插件做出了贡献。


“Bootstrap Blocks”插件已被翻译至4种本地话语言。 感谢所有译者为本插件所做的贡献。

将“Bootstrap Blocks”翻译成您的语言。





This version adds (experimental) support for Bootstraps CSS grid. Please read the documentation for further information.

  • [FEATURE] Add experimental support for Bootstraps CSS grid. The support is still experimental since it’s also marked as experimental in the Bootstarp library. To use it you need to enable it in the plugins settings and the $enable-cssgrid: true setting has to be enabled in your Bootstrap variables file.
  • [FEATURE] Introduce new JavaScript filter wpBootstrapBlocks.row.cssGridGuttersOptions for CSS grid. Please read the documentation for further information.
  • [FEATURE] Introduce new PHP filters for CSS grid templates: wp_bootstrap_blocks_row_css_grid_classes, wp_bootstrap_blocks_row_css_grid_styles, wp_bootstrap_blocks_column_css_grid_classes, wp_bootstrap_blocks_column_css_grid_content_classes. Please read the documentation for further information.
  • New Templates: column-css-grid.php, row-css-grid.php


  • [FIX] Remove deprecated wp-editor dependency in newer versions of WordPress to avoid deprecation notice in widget screen (WordPress >= 5.8).


  • [COMPATIBILITY] Tested up to WordPress 5.8.
  • [FIX] Use new block_categories_all filter instead of deprecated block_categories to register custom block category.


  • [FEATURE] Added possibility to vertically align the content in a column block from the block controls.
  • [DEPRECATED] The centerContent attribute of the column block is deprecated. If enabled it will automatically be migrated to the new contentVerticalAlignment attribute.
  • Modified Templates: column.php


  • [FEATURE] Ability to transform multiple selected blocks into a row block. This feature only works with WordPress >= 5.6. Additionally custom templates (see wpBootstrapBlocks.row.enableCustomTemplate filter) must be enabled (which is the default).
  • [COMPATIBILITY] Bootstrap 5 is not flagged experimental anymore.
  • [COMPATIBILITY] Tested up to WordPress 5.7.2.
  • [DEVELOPMENT] Migrate E2E tests to Cypress.



  • [COMPATIBILITY] Tested up to WordPress 5.6.
  • [FIX] Fix editor styling issues when used with Twenty Twenty-One theme (which will be shipped with WordPress 5.6).


  • [FIX] Use unique jsonpFunction name in webpack config to avoid conflict with other plugins built with @wordpress/scripts. (Thanks CP-Antoine for the hint)
  • [IMPROVEMENT] Replace WordPress Dashicons with SVG icons.


  • [FEATURE] Add possibility to open link of button block in new tab.
  • [FEATURE] Add possibility to set the rel attribute of the button blocks link.
  • Modified Templates: button.php


This version adds (experimental) support for Bootstrap 5! Please read the documentation for further information.

  • [FEATURE] Add Bootstrap 5 support.
  • [FEATURE] Introduce new plugin options page (Settings > Bootstrap Blocks).
  • [FEATURE] Add options to define vertical and horizontal gutters sizes in row block (Bootstrap 5 only).
  • [FEATURE] Add support for Xxl breakpoint size (Bootstrap 5 only).
  • [FEATURE] Introduce new JavaScript filters for Bootstrap 5 specific options: wpBootstrapBlocks.row.horizontalGuttersOptions, wpBootstrapBlocks.row.verticalGuttersOptions. Please read the documentation for further information.
  • Modified Templates: column.php, row.php


  • [FIX] Import dependencies from @wordpress npm-packages instead of relying on the global wp namespace during development.
  • [FIX] Fix visibility of row, column and container blocks in WP 5.5.


  • [FIX] Fix loading of translations.
  • [FIX] Fix dependencies of editor script.
  • [TRANSLATION] Add Swiss-German translation.


  • [FIX] Fix documentation of wp_bootstrap_blocks_column_default_attributes filter (see: sizeXY attributes have been defined as string values instead of int values in example. If you’re using this filter please check if you pass the values correctly. Passing string values to int attributes will stop working in WordPress 5.5.


  • [FEATURE] Possibility to enable stacked layout for column blocks in editor to enhance readability of block content. This feature can be enabled by default by setting the editorStackColumns value to true in the wp_bootstrap_blocks_row_default_attributes PHP filter.


  • [FIX] Regression in built assets which was introduced by the @wordpress/scripts package. Using multiple plugins which were built with the @wordpress/scripts build-script resulted in a JavaScript error.


  • [FEATURE] Visually show all column background colors in editor (not only preconfigured).
  • [DEVELOPMENT] Switch from @wordpress/scripts to @wordpress/env for local dev environment.
  • [DEVELOPMENT] Use official webpack config from @wordpress/scripts to compile scss files.


  • [IMPROVEMENT] Improve visibility of row, column and container blocks in editor.
  • [IMPROVEMENT] Do not automatically insert default block in wrapper blocks (column and container) [WordPress >=5.3].
  • [FIX] Replace usage of deprecated packages.


  • Breaking Change [CHANGE] Do not render empty content <div> in column template. This is a rather small change but it could break your current design (if it relies on this <div>). Please verify that this isn’t the case before updating.
  • [FIX] Fix styling issues of column block with WordPress 5.4.
  • Modified Templates: column.php


  • [IMPROVEMENT] Do not run version check on every request.
  • [FIX] Fix styling issues with Gutenberg plugin v7.2.
  • [FIX] Fix loading of translation files.
  • [FIX] Fix compatibility issues with WordPress <= v5.1.


This is a major update of the plugin. Please check if the mentioned breaking changes affect your code before updating to this version.

  • Breaking Change [REMOVE] Old object template structure for row templates is not supported anymore! Please update your templates to the new array structure (see filter documentation).
  • Breaking Change [REMOVE] Removed unused wpBootstrapBlocks.row.useOldObjectTemplateStructure filter.
  • Breaking Change [REMOVE] Removed wpBootstrapBlocks.container.useFluidContainerPerDefault filter. Please use wp_bootstrap_blocks_container_default_attributes filter instead.
  • Breaking Change [CHANGE] Removed unused wrapper-div from row template. The alignfull class now gets added directly to the row.
  • Breaking Change [CHANGE] Renamed wpBootstrapBlocks.container.customMarginOptions filter to wpBootstrapBlocks.container.marginAfterOptions.
  • [FEATURE] Support for responsive containers which were introduced in Bootstrap 4.4. Use them by setting the Fluid Breakpoint option in the container block.
  • [FIX] Reset centerContent attribute of column block if background-color gets removed.
  • [FIX] Check if className attribute isn’t empty before adding it to template to avoid empty strings in classes array.
  • [FIX] Fix filemtime() warning if asset version couldn’t be found.
  • Modified Templates: container.php, row.php, column.php, button.php


  • [CHANGE] Decrease loading priority of block editor assets to ensure that custom block filters are executed.
  • [CHANGE] Add custom classes of row block to row-div instead of wrapper-div.
  • [FEATURE] Added possibility to define equal-width columns.
  • [IMPROVEMENT] Improve template selection button styling when using a custom icon.
  • [IMPROVEMENT] Optimized editor styling of grid.
  • [IMPROVEMENT] Do not limit the width of child blocks inside the container block.
  • Modified Templates: column.php, row.php


  • [FIX] Fix meaning of wpBootstrapBlocks.row.useOldObjectTemplateStructure filter. In v1.3.0 boolean value was inverted.
  • [FIX] Fix add default icon to template if it’s missing.


In this release we changed the template structure for the row block form object to array (see template update guide). With this change we try to move towards the new template structure which will be introduced by the InnerBlocks template selector feature.

If you used the wpBootstrapBlocks.row.templates filter to modify the existing row templates please update your template structure accordingly (see filter documentation). The old structure will still work but is deprecated.

As soon as you have updated your template structure you need to disable the old object template structure with the wpBootstrapBlocks.row.useOldObjectTemplateStructure filter.

  • [IMPROVEMENT] Improve template selection in row block. Added possibility to set an icon for each template.
  • [IMPROVEMENT] Use withSelect / withDispatch HOCs in row block.


  • [FEATURE] Added new filter wp_bootstrap_blocks_enqueue_block_assets to disable enqueuing block assets.
  • [FIX] Fix enqueuing of script and style dependencies.


  • [FEATURE] Added possibility to set background color on column block.
  • [IMPROVEMENT] Optimized editor styling of row block.
  • Modified Templates: button.php, column.php, row.php


  • Initial release of this plugin