Skip to content

The Elementor module

VX Framework models your content. Elementor draws it. The Elementor module is the join: every VX field becomes something you can bind to a control, show or hide an element by, or repeat an element for.

Turn it on: VX Modules → Modules → Elementor. It needs Elementor active — it works with Elementor and with Elementor Pro.

The VX picker in Elementor — a field tree, an expression with modifiers, and a live preview

What it adds

FeatureWhere you meet it
Nine dynamic tagsElementor's dynamic tag list, under VX
The VX pickerA VX button beside the dynamic switcher on every dynamic-capable control
Visibility rulesA VX Visibility section on the Advanced tab of every element
LoopsA VX Loop section on the Advanced tab of every element
Structure panel iconsAn icon in the navigator on every element carrying a VX binding, rules, or a loop
Right-click copy and pasteA VX group in the element context menu: copy and paste rules, copy and paste a loop

All of it works on classic Elementor elements and on Elementor V4 atomic elements.

What it does not add

The module does not build a Theme Builder, a template system, or a post grid. Elementor Pro already has those, and reimplementing them would mean two systems fighting over the same job. Pair the module with Elementor Pro's Theme Builder when you need single templates, archives, or a query loop, and use VX's dynamic tags inside them.

Free Elementor goes a long way

On free Elementor the module still gives you every tag, the picker, visibility rules, and loops on ordinary pages. What you give up is Pro's Theme Builder — so a single-post template that renders VX fields needs Pro, while a page that renders a specific post's VX fields does not.

Two controls that were missing dynamic support

Elementor ships a few core controls without dynamic support switched on. The module opts two of them in, because they are the ones people reach for constantly:

  • Text Editor — the editor content
  • Alert — the title and the description

If you need another core control opted in, the list is filterable:

php
add_filter( 'vxm/elementor/dynamic_controls', function ( array $controls ): array {
    $controls['heading'] = [ 'section_title' => [ 'title' ] ];
    return $controls;
} );

How it stays safe across Elementor releases

Everything goes through Elementor's public hooks — controls/base/behaviors, document/dynamic/*, elementor/frontend/{type}/should_render, the atomic props schema — never through overriding Elementor's own classes. Elementor's own dynamic switcher, its indicators, and its context menu keep working exactly as they did.

Next

Built by Code Wattz.