Page Builders

Beaver Themer Review: a WordPress theme builder for Beaver Builder users

Beaver Themer review: how the Beaver Builder add-on builds headers, footers, archives, single posts, 404 pages, plus the hooks and field connections devs use.

Beaver Themer Review: a WordPress theme builder for Beaver Builder users review on GPL Times

If you’ve used Beaver Builder Pro for a while, you’ve probably hit the same wall everyone does. You can drag a beautiful layout into any page or post, but the moment you leave the content area, you’re back at the mercy of the underlying theme. The header still belongs to the theme. The footer still belongs to the theme. Archive pages, single-post templates, the 404, the search results, the WooCommerce shop, all of it lives in PHP files you can’t touch without writing code. Beaver Themer is the add-on that breaks that wall. It lets the same drag-and-drop editor you already know take over the parts of the site the theme used to own.

This review walks through what Beaver Themer is, what it actually does once you install it, the screens you’ll spend time in, the developer-facing pieces (hooks, filters, field connections, the [wpbb] shortcode language), and where it fits against rivals like Elementor Theme Builder, Divi Theme Builder, Bricks, and Oxygen.

Table of Contents

What is Beaver Themer?

Beaver Themer is an official add-on to Beaver Builder, written and maintained by the same team. The free Beaver Builder Lite plugin lets you build inside the content area of pages and posts. Beaver Builder Pro adds saved templates, more modules, and theme support. Beaver Themer extends that further by introducing a new layout type, Themer Layouts, that can replace the bits of the page Beaver Builder couldn’t previously touch.

A Themer Layout is just a WordPress post under the fl-theme-layout custom post type. Each layout has a type, which tells Themer where it slots into the WordPress template hierarchy. The types are:

  • Header: replaces the site header on every page (or just on pages that match a rule).
  • Footer: replaces the site footer.
  • Singular: replaces the body of a single post, page, or custom-post-type entry. This is what most people install Themer for.
  • Archive: replaces the body of category, tag, taxonomy, custom post type archive, search results, and author archives.
  • 404: replaces the body of the 404 page.
  • Part: a reusable bit of layout (like a CTA, a sticky promo bar, or a social share row) that you inject into other layouts via a hook or shortcode.

Once a layout exists, you set its Location (where it applies), Exclusions (where it doesn’t apply), and User Rules (who sees it). Themer wires it into the WordPress template chain so the right layout shows up at the right URL.

The other big idea is Field Connections. Every text input inside a Themer Layout can pull its value from the current post, the current archive, the current user, the site, a custom field, or an ACF field. That means a single archive layout can render the right title, the right description, and the right featured image for every category, every tag, every custom taxonomy term, without you cloning ten different versions.

Beaver Themer’s whole story is that. It turns the Beaver Builder editor into a theme-building tool, and it does it through a UI that the existing Beaver Builder user already understands.

Key features

  • Themer Layouts custom post type with six layout types: Header, Footer, Singular, Archive, 404, and Part. Each lives at wp-admin/edit.php?post_type=fl-theme-layout and opens in the regular Beaver Builder editor when you click "Launch Beaver Builder".
  • Location rules that decide where a layout applies. The rule builder supports Entire Site, Singular (with sub-targets like Posts, Pages, all post types, or specific items), Archive (all archives, category, tag, custom taxonomy, post type archive, author, date), and per-template targeting. You can stack multiple rules on one layout (for example, "All posts" plus "Custom Post Type: Project").
  • Exclusion rules for the cases where the location rule is too broad. You can apply a layout to "All Singular" but exclude one specific page that needs a custom look.
  • User rules that limit visibility by login state, role, or capability. Useful for member-only headers, role-specific 404 pages, or a different layout for administrators.
  • Conditional Logic on rows, columns, and modules. Any block inside a layout can be shown or hidden based on the current post, the current user, the date, URL parameters, ACF field values, or arbitrary PHP-friendly comparisons. This is the same Conditional Logic engine Beaver Builder Pro uses for content layouts, surfaced inside Themer.
  • Field Connections for dynamic data. Any text input has a small connection icon that opens a picker grouped by Post, Archive, Site, User, Custom Field, ACF, and WooCommerce. Pick a source and the field becomes dynamic, rendering the right value on every URL.
  • Themer Modules: Post Title, Post Content, Post Excerpt, Featured Image, Post Info (date, author, terms, comment count), Post Navigation, Author Bio, Comments, Archive Title, Archive Description, Attached Images. These are the building blocks for a Singular or Archive layout.
  • Loop builder that lets you design a single result card visually and Themer will repeat it for each post in a query. The query supports post type filters, taxonomy filters, custom date ranges, custom sort orders, and pagination.
  • Sticky / shrink / hide on scroll headers with a small panel of behavior toggles on the header row. No JavaScript to write. The settings hand off to attributes the front-end script reads (data-sticky-breakpoint, data-shrink-image-height, data-shrink-logo-height).
  • Singular layouts as page templates. Any Singular layout shows up as a selectable Template in the WordPress edit screen, so a single Themer Layout can be applied to one specific page without writing a location rule.
  • WooCommerce integration. Themer ships layouts for WooCommerce product single pages, shop archive, cart, checkout, and My Account, plus dynamic field connections that pull product price, SKU, stock, attributes, etc.
  • ACF support out of the box. Field Connections include the ACF group. Repeater and Flexible Content fields get their own shortcode loops ([wpbb-acf-repeater] and [wpbb-acf-flex]) so you can iterate them inside a layout.
  • Theme adapters for the popular themes most Beaver Builder users run on top of: the Beaver Builder Theme (BB Theme), Astra, GeneratePress, Genesis, Hello Elementor, OceanWP, and the bundled Twenty* themes. Each adapter knows how to hand off get_header() / get_footer() to Themer cleanly.

How it works (for users)

Open wp-admin after activating Beaver Themer. Under the Builder menu, you get a new submenu called Themer Layouts. The list view is a normal WP admin table with columns for Title, Type (Header / Footer / Singular / etc.), and Location. The first time you visit it, the list is empty.

Click Add New. The modal asks for three things: a Title (just for your reference), a Type (which surface this layout controls), and a starting layout. The starting-layout dropdown is either "Standard Layout" or one of the saved templates that ship with Beaver Builder Pro. For a header, the "Standard Layout" gives you a blank slate. For a Singular, the dropdown also shows community-contributed Singular templates if you have any installed.

Save that, and you land on the regular WordPress edit screen for the layout, with one new addition: a Themer Layout Settings meta box. This is where the magic lives. The meta box has tabs for:

  • Location: rows for where this layout applies, like "Entire Site", "Singular: Page", "Archive: Category: News".
  • Exclusions: rows for posts where this layout should NOT apply.
  • User Rules: a dropdown for who sees this layout (everyone, logged-in, logged-out, by role, by capability).

Below the meta box is the big blue Launch Beaver Builder button. Click it, and the Beaver Builder live editor opens with your layout loaded. For a Singular layout, the editor opens against the page-or-post it would apply to, so you’re laying out a real piece of content rather than placeholder text. You’ll see a new module group in the left panel labelled Themer Modules that contains Post Title, Post Content, Featured Image, Author Bio, Comments, Loop, and so on. Drag them in like any other module.

Every text input inside any module has a small chain-link icon next to it: Connect. Click it to open the Field Connections picker. Choose, say, "Post: Title" and the input becomes dynamic. From now on, that field will render the title of whatever post the layout is applied to. The same picker has ACF, custom fields, archive metadata, user info, site info, and WooCommerce product fields. Most layouts you build in Themer will use 6-15 of these connections.

When you save and exit, Themer activates the layout. Visit a URL that matches the Location rule (say, a Singular: Post page if you built a Singular layout for posts), and the layout renders in place of your theme’s normal single-post template. The same applies for archives, the 404, the header, and the footer.

One thing that surprises people: while you’re editing a Themer Layout, the Beaver Builder editor toolbar shows a Preview Locations dropdown. Switch it to a different post or a different archive, and the editor live-rebinds the field connections to that target. You can lay out an archive once, then preview it against the Category archive, the Tag archive, and the CPT archive all in the same editor session.

Installation and setup

Beaver Themer is sold as an add-on to Beaver Builder. You install the Beaver Builder Pro plugin first (the page builder), then activate Beaver Themer on top of it.

  1. In wp-admin, go to Plugins → Add New → Upload Plugin.
  2. Upload the Beaver Themer zip and Activate.
  3. Go to Plugins and confirm both Beaver Builder Pro and Beaver Themer are active. Themer is dependent on Beaver Builder. If Beaver Builder isn’t installed, Themer simply won’t surface its menus.
  4. Open Settings → Beaver Builder → License and enter your license key.
  5. Open Builder → Themer Layouts. This is where you’ll spend most of your time. If you don’t see this menu, your active theme isn’t yet known to Themer. Either switch to a theme Themer recognises (BB Theme, Astra, GeneratePress, Genesis, Hello Elementor, OceanWP, a Twenty* theme), or add adapter code per the developer docs.

Once that’s done, the first useful thing to do is build a Singular layout for a custom post type, a Header that replaces your theme’s, or an Archive for one of your taxonomy pages. The Themer documentation has good starter material at the Beaver Themer knowledge base.

A small thing that catches people: Themer doesn’t "remove" your theme’s templates. It intercepts them at render time. So if you build a Singular layout for posts and then delete it, your theme’s single.php takes over again. Themer is a layer above the theme, not a replacement.

Real-world use cases

Custom post type single template without writing code

A photography portfolio site has a "Project" custom post type. The theme’s single template was generic. With Themer, you make a new Singular layout, set Location to "Singular: Project", drag in Featured Image, Post Title, Post Content, then a custom Gallery module that pulls images from an ACF Pro gallery field via Field Connections. Every Project from now on renders this layout, with the right images, the right title, the right description per project.

Per-category archive layouts

A food blog has fifteen recipe categories. The theme used the same archive page for all of them. With Themer, you can build one Archive layout, set Location to "Archive: Category" (all of them), and use Field Connections to pull the category title and description into the layout dynamically. Or, you can build different Archive layouts per category and apply each one with its own Location rule. Either way, no PHP, no child theme category-*.php files.

Sticky header that shrinks on scroll

A SaaS landing site wants a big logo and full nav on first load, then a compact bar once the user scrolls. Themer’s Header layout has a "Sticky" toggle, a "Shrink" toggle, a breakpoint, and a target shrink height. Set them, save, done. The output uses CSS transitions and data attributes the bundled JS reads. No external script library.

Member-only homepage variations

An online community shows one homepage layout to logged-out visitors and a different homepage layout to logged-in members. Two Themer layouts, both Singular: Page → Home Page. One has the User Rule "Logged out only", the other has "Logged in only". WordPress picks the right one at render time. No conditional PHP, no plugin like restrict-content tied into your theme.

WooCommerce single product redesign

A store wants a custom product page layout that doesn’t look like the default WooCommerce single. Themer ships a "WooCommerce Product Page" layout type. You drag in Featured Image, Product Title, Price, Add to Cart, Description, Reviews, plus a custom cross-sell module pulling from WooCommerce Product Bundles. Set Location to "Singular: Product" and every product page now uses your custom layout. WooCommerce’s own hooks still fire, so add-to-cart, variations, and reviews all work.

Developer reference

For developers, Beaver Themer exposes most of its rendering and data layer through actions, filters, and a shortcode language. Below is the most useful subset.

Render hooks around layout output

Themer fires these actions immediately before and after it renders each surface. Use them when you need to inject markup that Beaver Builder doesn’t already let you place (a Schema.org wrapper, a beacon script, a custom data attribute).

add_action( 'fl_theme_builder_before_render_header', function( $layout_id ) {
 echo '<div class="my-header-wrap" data-layout-id="' . esc_attr( $layout_id ) . '">';
} );

add_action( 'fl_theme_builder_after_render_header', function( $layout_id ) {
 echo '</div>';
} );

add_action( 'fl_theme_builder_before_render_content', function( $post_id ) {
 if ( is_singular( 'product' ) ) {
 do_action( 'my_product_view_tracking', $post_id );
 }
} );

The full set: fl_theme_builder_before_render_header, fl_theme_builder_after_render_header, fl_theme_builder_before_render_content, fl_theme_builder_after_render_content, fl_theme_builder_before_render_footer, fl_theme_builder_after_render_footer.

Cache and rendering filters

// Increase the compiled CSS / JS cache lifetime to 90 days
add_filter( 'fl_theme_builder_assets_expire', function( $seconds ) {
 return 90 * DAY_IN_SECONDS;
} );

// Add a class to the content wrapper Themer renders
add_filter( 'fl_theme_builder_content_attrs', function( $attrs, $post_id ) {
 $attrs['class'] = ( $attrs['class'] ?? '' ) . ' my-themer-content';
 return $attrs;
}, 10, 2 );

// Disable Themer's automatic JSON-LD schema output (you have your own)
add_filter( 'fl_theme_builder_disable_schema', '__return_true' );

// Change the default sticky breakpoint
add_filter( 'fl_theme_builder_sticky_header_breakpoint', function() {
 return 'large';
} );

Field connections in code

The Field Connections engine is built on a registry. You can register your own data source so users can pick it in the connection UI. This is the killer feature for shops that maintain custom plugins.

add_filter( 'fl_page_data_groups', function( $groups ) {
 $groups['my_plugin'] = array(
 'label' => __( 'My Plugin Data', 'my-plugin' ),
 );
 return $groups;
} );

add_filter( 'fl_page_data_properties', function( $props ) {
 $props['my_plugin_score'] = array(
 'label' => __( 'Score', 'my-plugin' ),
 'group' => 'my_plugin',
 'type' => array( 'string', 'html' ),
 'getter' => array(
 'class' => 'My_Plugin_Page_Data',
 'method' => 'get_score',
 ),
 );
 return $props;
} );

class My_Plugin_Page_Data {
 public static function get_score( $settings ) {
 $post_id = get_the_ID();
 return (string) get_post_meta( $post_id, '_my_plugin_score', true );
 }
}

After registering, My Plugin Data → Score shows up in the Field Connections picker. Any text input in a layout can connect to it.

The wpbb shortcode language

Field Connections live in the UI, but under the hood they are rendered as a shortcode. You can use the same shortcodes in text widgets, in module HTML areas, and in custom code:

[wpbb post:title]
[wpbb post:meta key='subtitle']
[wpbb post:featured_image_url size='medium']
[wpbb post:author_name]
[wpbb site:title]
[wpbb user:display_name]
[wpbb acf:my_field_name]

[wpbb-if post:meta key='is_featured' value='yes']
 <span class="badge">Featured</span>
[wpbb-else]
 <span class="badge muted">Standard</span>
[/wpbb-if]

[wpbb-acf-repeater name='team_members']
 <div class="team-card">
 <h3>[wpbb-acf-repeater-item name='member_name']</h3>
 <p>[wpbb-acf-repeater-item name='member_role']</p>
 </div>
[/wpbb-acf-repeater]

This shortcode language is what [wpbb post:title] etc. lower into when you save a Field Connection from the UI. Wiring it by hand into a Custom HTML module is faster for power users than clicking the picker.

Conditional logic filters

// Add a custom rule to Themer's location rule registry
add_filter( 'fl_theme_builder_location_rules', function( $rules ) {
 $rules['my_custom_page_type'] = array(
 'label' => __( 'My Custom Page', 'my-plugin' ),
 'callback' => 'my_plugin_match_custom_page',
 );
 return $rules;
} );

function my_plugin_match_custom_page( $rule ) {
 return is_page() && get_post_meta( get_the_ID(), '_my_custom_flag', true ) === 'yes';
}

Loop module hooks

The Loop module is the heart of any Themer archive. These filters let you bend the underlying WP_Query without forking the module.

add_filter( 'fl_builder_loop_query_args', function( $args, $settings ) {
 // Only my Loop modules (identified by a custom class)
 if ( isset( $settings->class ) && strpos( $settings->class, 'staff-loop' ) !== false ) {
 $args['orderby'] = 'meta_value_num';
 $args['meta_key'] = '_staff_priority';
 $args['order'] = 'ASC';
 }
 return $args;
}, 10, 2 );

You’ll find more in the Beaver Themer developer documentation, and the WordPress template hierarchy reference is worth reading once if you’re new to how Themer slots into WP’s template chain.

Performance, compatibility, and gotchas

What Themer does at runtime

When a page request comes in, Themer hooks template_include (and on supported themes, get_header / get_footer filters). It checks each Themer Layout’s location rules in order, finds the first match, and renders that layout’s compiled output. The compiled output is a CSS and JS bundle generated when you save the layout, plus the layout’s HTML built dynamically from Field Connections.

This means Themer adds one query (to find the matching layout) and one filesystem read (to load the cached CSS/JS). Both are cheap. The bigger cost is whatever modules you stack inside the layout. The Loop module on an archive page, for instance, is the same WP_Query your theme would have run, just wrapped in Themer’s rendering. The Post Content module re-runs the_content filters. Heavy ACF Repeater loops with nested ACF fields are exactly as expensive as they would be in a hand-coded template.

Cache plugin behaviour

Page caches (WP Rocket, WP Fastest Cache, LiteSpeed, etc.) don’t know that you republished a Themer Layout. They serve the cached HTML until their TTL expires or you manually purge. Build your editing workflow with that in mind. Either purge the cache plugin after each Themer save, or use a hook to do it automatically:

add_action( 'save_post_fl-theme-layout', function( $post_id ) {
 if ( function_exists( 'rocket_clean_domain' ) ) {
 rocket_clean_domain();
 }
} );

Theme compatibility

Themer integrates cleanly with themes that follow standard WordPress practice (get_header(), wp_head(), get_footer(), wp_footer() in the right places). Bundled adapters live in extensions/themes/ and handle Astra, GeneratePress, Genesis, Hello Elementor, the Beaver Builder Theme, OceanWP, and the Twenty* themes. Other themes work too, but the adapters give Themer a cleaner hand-off point and avoid double-rendering edge cases.

Where Themer struggles is themes that hard-code their templates without get_header() / get_footer() (rare but exists in heavily customised builds), or themes whose author has put theme builder code in a place Themer can’t intercept. If you see your theme’s header rendering and a Themer Header on the same page, you need an adapter.

Translation and multilingual

Themer plays well with WPML and Polylang Pro. The fl-theme-layout CPT is translatable in both. The standard pattern: create the layout in your default language, translate it, and Themer will pick the right version at render time based on the active language. ACF repeaters inside Themer Layouts behave the same way as in a hand-coded template, with the caveat that you need the same field structure on translated posts.

Field connections inside HTML attributes

A common gotcha. A Field Connection in a normal text field works fine. The same connection inside an HTML attribute (an href, a src, a data-* attribute on a Custom HTML module) sometimes gets stripped by wp_kses_post sanitization. The fix is to use the explicit [wpbb] shortcode inside a Custom HTML module rather than the UI picker, since Beaver Builder runs the shortcode parser after the kses pass.

Conditional Logic on top of caching

If you use Conditional Logic to vary content per logged-in user but you also have full-page caching, your cached HTML will leak one user’s view to everyone. Either bypass the cache for logged-in users (every serious cache plugin can do this), or move the per-user variation to JavaScript using the REST API.

Pricing and licensing

Beaver Themer is sold as a separate add-on, not as part of Beaver Builder Pro. On the wpbeaverbuilder.com store, it’s an annual license: support and updates are included for as long as your license is active. Renewal is at a reduced rate. The license is per-site or for unlimited sites depending on which tier you bought. The Beaver Builder team also sometimes runs lifetime deals through partner stores.

What you actually need to use it:

  1. A copy of Beaver Builder Pro (the page builder).
  2. A copy of Beaver Themer (this add-on).
  3. A theme that Themer recognises (the bundled adapters cover almost everything).

FAQ

Do I need Beaver Builder to use Beaver Themer?

Yes. Themer is an add-on. Without Beaver Builder Pro installed and active, Themer’s menus don’t appear, the editor never opens, and the layout post type just sits in wp-admin doing nothing. You install Beaver Builder Pro first, Themer second.

Will Beaver Themer replace my theme?

No. Themer overrides specific parts of the page (the header, footer, body, archive, 404) when a location rule matches. It does not delete or modify your theme’s PHP. If you uninstall Themer or delete a layout, your theme’s templates take over again.

How does this compare to Elementor Theme Builder?

Elementor Pro ships its theme builder inside the same plugin. Beaver splits the page builder (Beaver Builder Pro) and the theme builder (Themer) into two separately-priced plugins, so the entry price is higher. Functionally they cover similar ground: both can build headers, footers, archives, singulars, and 404s, and both have a dynamic-content system. Themer’s Field Connections are slightly more elegant for ACF and custom fields, partly because of the [wpbb] shortcode language. Elementor’s Display Conditions UI is more refined visually. Pick the builder whose editor you actually want to spend time in.

How does this compare to Divi Theme Builder?

Divi’s theme builder ships free with the Divi theme. It works well for sites where Divi is the theme. Beaver Themer works on any theme, which matters if you want to use a lightweight theme like GeneratePress underneath your builder. The visual editing experience between Divi’s builder and Beaver Builder is also a matter of taste, and the answer there carries over to the theme builders.

Does it work with Bricks or Oxygen?

No, they’re different page builders with their own theme-builder layers. Themer is specifically for Beaver Builder. If you’re already on Bricks or Oxygen, you don’t need Themer because both of those builders ship their own theme builder.

Can I use Themer for WooCommerce product pages?

Yes. The Singular layout type supports the product post type, and Themer has dedicated WooCommerce dynamic-data tokens (price, SKU, stock, attributes, gallery). Drag in a Product Title module, a Featured Image module, Price, Add to Cart, and you have a custom product page. WooCommerce’s own hooks (woocommerce_before_main_content, etc.) still fire, so variations, reviews, and add-to-cart all behave normally.

Does Themer slow down my site?

Per request, Themer adds one extra query (to find the matching layout) and one filesystem read (the compiled CSS/JS for that layout). Both are cheap. What’s slower is whatever you put inside the layout: a Loop module on an archive runs the same WP_Query your theme would have run, just inside Themer. The cost of the layout’s content matches the cost of a hand-coded template doing the same thing.

Can multiple Themer Layouts apply to the same URL?

For Singular and Archive layouts: only one wins, picked by location-rule specificity. For Headers and Footers: same, one wins. For Parts: parts are intentionally meant to be reused across other layouts, so multiple parts can coexist inside a single Singular layout. Conflict resolution is documented in the Themer locations reference.

Final thoughts

Beaver Themer is the add-on that completes Beaver Builder. Without it, the page builder is great for building pages, and that’s it. With it, the same drag-and-drop editor takes over headers, footers, archives, single posts, the 404, and WooCommerce. The Field Connections engine is the part that genuinely surprises people the first time they use it: a single layout can render the right title, the right image, and the right body for every category, every product, every custom post type, without cloning.

It is not the cheapest theme builder. Elementor Pro and Divi Theme Builder both bundle theme-builder into the page-builder license, so the total price is lower if you’re starting from zero. But if you’re already a Beaver Builder shop and the question is whether to keep dropping into single.php for every CPT, the answer is to install Themer once and stop writing template files. The time you save on the next custom post type pays for the plugin many times over.

For developers, the hooks layer is the part to take seriously. The render hooks, the fl_page_data_* filters for registering custom data sources, and the Loop module query args together give you enough to integrate Themer into almost any existing plugin’s data model. Combined with ACF Pro or JetEngine, Themer becomes the visual layer over the data layer those plugins build, which is where most modern WordPress sites end up.