This release tackles many current issues and adds plenty of improvements and some exciting new features to Bricks.

It’s a big one—around 80 changes in total. So, we’ll first release a beta for you to test and provide feedback via email or the forum. Please don’t use this beta on any live sites!

The manual download for this beta is available at https://my.bricksbuilder.io/?beta=1.9.8

CSS Variables Manager

After introducing the global class manager in Bricks 1.9.5, we now extend the global style management capabilities of Bricks to CSS variables with the introduction of the new global variables manager 🤩

Documentation: https://academy.bricksbuilder.io/article/global-variables-manager/

Code Element: Support Dynamic Data

The Code element now supports parsing dynamic data.

To remain backward-compatible and avoid breaking any existing code with the new parse, you have to explicitly enable the new “Parse dynamic data” setting, as shown in the screenshot.

You’ll also notice another new setting named “Suppress PHP errors”. Enable it if you don’t want any potential PHP errors inside your Code element to be visible on the front end of your live site.

Duplicate Pages/Templates

Do you have an existing page, built with Bricks or Gutenberg, that you want to duplicate, including all its post meta, terms, etc.?

You can now do this with Bricks, either in the WordPress dashboard by hovering over the page title and clicking the “Duplicate” link or inside the builder under the “Pages” panel.

Please use this new built-in duplicator instead of third-party solutions to ensure that unique element IDs are properly generated for your duplicated pages, templates, etc.

The duplicated page/template will be saved as a draft.

Style Tab & Breakpoint Setting Indicators

The trusty setting “dot” indicator was only available next to individual settings. You can now quickly spot if the element or global class you are editing contains settings on any breakpoint. And if any styles are set under the “Style” tab.

NOTE: The little “dot” that indicated the “Base breakpoint” in the builder toolbar has been changed to a “line” below the breakpoint icon. This way, we can use the “dot” indicator throughout the builder to denote properties that “have settings.”

New Spacing Control UI (margin/padding)

As the new variable picker requires additional space inside the panel, we had to rethink certain controls, such as the spacing control used for margin, padding, and border width.

You can still access the previous spacing control by clicking the “toggle” icon. 😎

Cache remote templates

Previously, remote templates were requested every time you opened the template manager in the builder, which was a bit excessive. So now, all remote templates are cached locally on your machine for seven days via IndexedDB.

More flexible echo function name checks

If you are using a lot of DD echo tags on your Bricks site, you can now take advantage of a more flexible way to whitelist and check the function names you want to call through the echo tag via regex patterns or 100% custom checks. Learn how, plus code examples, at https://academy.bricksbuilder.io/article/filter-bricks-code-echo_function_names/#patterns

New custom JavaScript events

We prepared the following three new custom JavaScript events for you:

  • bricks/tabs/changed
  • bricks/accordion/open
  • bricks/accordion/close

There’s also a new Academy article listing all custom JavaScript events Bricks provides at https://academy.bricksbuilder.io/article/custom-javascript-events-in-bricks/

Full changelog

  • Style tab: Setting indicatorNew
  • Code Element: Dynamic Data SupportNew
  • Toolbar: Breakpoint Setting IndicatorNew
  • Duplicate Page (WP & Bricks data)New
  • New DD tag: post_slugNew
  • CSS Variables ManagerNew
  • Code element: New setting “Suppress error message”New
  • Filter Datepicker: New setting “Date format” (to get correct min/max date)New
  • New filter: bricks/nav_menu/menu (set nav menu programmatically)New
  • Cache remote templates (client-side, via IndexedDB, for 7 days)New
  • DD filter array_value: Support WP core custom fields (e.g. cf_xxx:array_value|key)New
  • New custom JavaScript events: bricks/tabs/changed, bricks/accordion/open, bricks/accordion/closeNew
  • New spacing control UI + toggle (margin, padding)New
  • Bricks settings: Optimize get_users query (avoid any memory limits)Improve
  • Builder: Flex basis input not expandingImprove
  • Builder: Unsplash scrollbar needs higher contrastImprove
  • Code review: Sort echo function names alphabetically (A-Z)Improve
  • Pagination: Add flex-wrapImprove
  • Popup: Improved performance (for AJAX-loaded popups)Improve
  • Query loop: “No results” should take HTML tag setting into accountImprove
  • Show Bricks 1.9.7 admin notice only to users who can perform the stepsImprove
  • Structure panel: Fix rename lagImprove
  • Structure panel: Fix reorder lagImprove
  • Template element: Performance improvementsImprove
  • Updated: Font Awesome from 6.4.2 to 6.5.1Improve
  • Builder: Generate new element IDs when using “Save as template” (avoid duplicate element ID issue)Improve
  • Change bricksToggle function to a BricksFunction to avoid adding multiple events when function reruns through 3rd-party pluginImprove
  • Progress Bar: Don’t show label if emptyImprove
  • Compatibility with WooCommerce 8.8.2Improve
  • Remove filter: bricks/code/disable_signaturesImprove
  • More flexible echo filter: bricks/code/echo_function_namesImprove
  • Appearance > Menus > Menu item: “Multilevel” option not savedFix
  • Bricks Settings: LastPass browser extensions blocks Remote Templates “add” buttonFix
  • Builder: ACF relationship/post object loop 1st image from custom field always emptyFix
  • Builder: Element Custom CSS: Broken CSS class namesFix
  • Builder: First in-loop result with DD tag not rendered correctly (for x-template elements like Heading)Fix
  • Builder: Shortcode element placeholder width and height incorrectFix
  • Filter – Checkbox element: Space in meta value causes issueFix
  • Filter – Checkbox element: JavaScript error on taxonomy pageFix
  • Filter element: Indentation gap not applying on disabled optionsFix
  • Filter – Input placeholder: echo dd tag doesn’t work after filteringFix
  • Filter: Meta Query merge logic bug when original query has predefined Meta QueryFix
  • Form element: Input validation performance issueFix
  • Form submissions: Form name not shown if form element located in header/footer templateFix
  • Image Gallery: Masonry layout issue inside Nested tabsFix
  • Image element: Wrong selector for border radiusFix
  • Instagram element: Token regeneration not workingFix
  • Live search: Custom tag structure issues (table)Fix
  • Mini Cart element: Offcanvas ‘bottom’ incorrect top value (if admin bar enabled)Fix
  • Product gallery element: Missing product gallery image outputs PHP errorFix
  • Nestable Slider: ‘Items to show’ incorrect for breakpoints larger than base breakpointFix
  • Nested dynamic tag: Not working correctly in element conditionFix
  • Nested echo tag: Not executed in frontend (if whole page only has one DD tag on heading element)Fix
  • Form submissions: PHP Fatal Error “WP_List_Table class not found”Fix
  • Query loop meta_query with ‘relation’ key outputs PHP errorFix
  • Polylang: Search results not working on translated pageFix
  • Post comments: Fix comment_form_default_fields syntaxFix
  • Posts element: Sort & filter works only on every second clickFix
  • Query Filter: “Hide empty” still shows in SafariFix
  • Query Loop: Nested echo tag not workingFix
  • Query loop: Random seed not working if query set as Main Archive QueryFix
  • Query loop set as main query: Dynamic tag in parameters not workingFix
  • Query filter element with Condition might cause undefined after filter callsFix
  • Rich & Basic Text elements: Limit words adds additional ‘p’ tagsFix
  • Save Bricks data as Gutenberg data: replace post_content tag brackets with parenthesis to avoid infinite loopFix
  • Session expired text rendered (when using Formidable form with AJAX enabled)Fix
  • Filter – Select: Sort returns every post within a categoryFix
  • Tax Query: Not used when marking the query as Main Archive QueryFix
  • Term Query with Query Editor and Infinite Scroll: Always returned same resultFix
  • Infinite scroll returns empty result on archive page if query element ID was duplicated in another template (Bricks: Save as template)Fix
  • Text shadow: Double unitFix
  • Undefined array key “comment” (when using ReviewX plugin)Fix
  • AJAX Pagination: Custom icons reset to default (after enabling Query Filter)Fix
  • Builder: Link to External URL: Can’t link to file URLFix
  • Border control: border-width: 0 when using CSS variables & PHP 7.xFix
  • DD tag url_parameter: Not parsing if colon exists in URLFix
  • Attributes setting: DD tag echo nested with other DD tag not working insideFix
  • Image gallery: Masonry layout images overlapFix
  • Builder: Typo in Nav nestabled dropdown settingsFix
    All releases