I originally developed this plugin in 2018 to solve a problem that came up repeatedly in customer support: reusing content created with page builders, particularly WPBakery.
Since then, most page builders have introduced similar functionality themselves, making the plugin far less necessary.
Because of that, I don’t plan to actively develop or maintain it going forward. The WordPress ecosystem has also shifted significantly, with more users adopting the Block Editor and Full Site Editing (FSE), which is the direction I recommend as well.
The Reusable Content Blocks plugin allows you to insert content blocks (pages, posts, custom post types) created with your favorite page builders like WPBakery’s Page Builder, Elementor, Beaver Builder, SiteOrigin Page Builder, and Classic Editor, into content, widget areas, and templates using shortcode, Widget, or PHP without missing custom/inline styles generated by page builders.

Features
- Works with WPBakery’s Page Builder, Elementor, Beaver Builder, and SiteOrigin Page Builder.
- Works with WPBakery elements from the The7 theme.
- Dedicated element for WP Bakery page builder.
- Extendable support for other page builder addons and Elements from Themes.
- Allows using shortcodes, widgets, and PHP functions to place content blocks into other content, widgetised areas, or templates.
- Provides ready-to-use shortcodes and functions for Reusable block post types.
Usage cases
- Create Reusable blocks and insert it on multiple places, manage them from a single place.
- Design custom footer layouts using page builders, and insert them using the Widget.
- Design a topbar like a block using the page builder, and place it in templates using PHP or hooks.
- Insert the contents of a page, post, or custom post type in other content using a shortcode.
Function usage examples
Other than using shortcodes, WP Bakery elements, and widgets, you can also place content blocks using functions. You just need to call the function <?php rcblock_by_id( “12” ); ?> in your template where you want to display the block.
You can also insert it conditionally on some specific pages using WordPress Conditional tags.
<?php
if ( !is_front_page() && !is_home() ) {
rcblock_by_id( "12" );
}
?>
Using hooks
You can also place it using hooks if hooks are available in the location you want to insert.
add_action( 'wp_footer', 'insert_events_banner' );
function insert_events_banner() {
if( is_category( 'events' ) ) {
rcblock_by_id( "52891" );
}
}
add_action( 'presscore_after_content', 'insert_cp_banner' );
function insert_cp_banner() {
rcblock_by_id( "52894" );
}
CSS Meta keys
Some page builders save the element’s custom CSS as meta keys and render it when the page is viewed. If elements from your theme or page builder addons are missing style when inserted with a shortcode. In such a case, you can add CSS Meta Keys in your Dashboard > Reusable Blocks> Options > CSS Meta Keys field.
By default, the plugin already includes the7_shortcodes_inline_css – Meta key for The7 theme, CSS from WP Bakery page builder, Elementor, Beaver Builder, Page builder by Siteorigin. Style from the Ultimate addon for WP Bakery, the Massive addon will also work fine. You only need to bother about this if styles are missing for custom Elements from your Theme and other plugins.
How to find missing Meta keys.
Go to your phpmyadmin area and locate the Postema table, search for the page ID you have created with page builder, and the meta key similar to css, plugin, or theme name. SELECT * FROM `wp_postmeta` WHERE `post_id` = 52143 AND `meta_key` LIKE ‘%css%’
[dt_media_gallery_carousel image_sizing=”proportional” image_border_radius=”0px” image_hover_bg_color=”disabled” slides_on_wide_desk=”1″ slides_on_desk=”1″ slides_on_lapt=”1″ slides_on_h_tabs=”1″ slides_on_v_tabs=”1″ project_icon_border_width=”0px” arrows=”n” show_bullets=”y” bullets_v_offset=”-10px” bullets_h_offset=”0px” include=”774,775″]
If you feel like it’s hard, you’d better check with your Theme/Plugin developer for the meta key, or how they load custom/inline CSS.