# Loopable wrapper element with no HTML output

**URL:** <https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701>\
**Category:** Feature Requests / Improvements\
**Created:** [January 26, 2025, 8:28pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701 "2025-01-26T20:28:57Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [January 26, 2025, 8:28pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/1 "2025-01-26T20:28:57Z")

</div>

**Background**

- Create an [event listing with dynamically added month dividers](https://brickslabs.com/upcoming-events-grouped-by-month-year-in-bricks/)?
- Create a [post list grouped by publish year and month](https://brickslabs.com/posts-grouped-by-month-and-year-in-bricks/)

For these cases nested query loops with custom PHP is needed, while pagination e.g. show 12 posts per page won’t work with multiple loops. A simple query loop sorted by date and conditinally enabling the heading would (almost) satisfy the same requests in an easy to understand and efficient way.

**Proposal**  
Provide a loopable wrapper element with no code output. It solely wraps elements any element given, also multiple ones, which can be conditionally shown/hidden.

**Example uage**  
For the month divider a heading is conditionally enabled whenever the current post date starts a new month.

---

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [February 5, 2025, 8:32pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/2 "2025-02-05T20:32:39Z")

</div>

Following the development of other builders, there might soon be one of the first with rather unrestricted query loop possibilities. A loop element which acts as an invisible (no code output) container seems the best solution to provide query loop functionality.  
The current approach of Bricks, with a single root element and query loop enabled elements is restricted and leads to tedious workarounds like replacing whole loops with PHP or fiddling around with several layers of nested queries and still end up with a non-perfect solution.

It would be a huge deal for pro users, when the restrictions from the essential loops would be removed. With new builders on the horizon, this would be another point to ensure customers can be kept. I am sure many are not even aware of the impact of this feature request.

A loop element could even be the one and only element dealing with queries. Then no element needs this special loop parameter.

@Matej Ever considered that?

---

<div class="post-metadata">

**Author:** ![Matej](https://forum.bricksbuilder.io/user_avatar/forum.bricksbuilder.io/matej/32/20184_2.png) [@Matej](https://forum.bricksbuilder.io/u/Matej)\
**Post date:** [February 10, 2025, 1:50pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/3 "2025-02-10T13:50:16Z")

</div>

Hello @Maexxx,

thank you for the idea. I agree that this would be very nice (but not so easy to implement, if even possible the same was as the current query loop). I’ll present it internally, and we will discuss what we can do.

Thank you.  
Matej

---

<div class="post-metadata">

**Author:** ![parktechno](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/p/7feea3/32.png) [@parktechno](https://forum.bricksbuilder.io/u/parktechno)\
**Post date:** [February 10, 2025, 3:37pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/4 "2025-02-10T15:37:27Z")

</div>

I support you! 👍

Yes, it’s a very interesting idea not to apply a loop to an element, but rather an element to a loop. If I understood the author’s idea correctly 🙂

Crockoblock has similar functionality. You can set up any loops separately, and then apply them in the right places. I used it for Elementor once, but that was a long time ago…

---

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [February 13, 2025, 8:19pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/5 "2025-02-13T20:19:15Z")

</div>

Exactly, and then you can even copy and paste the loops (element) without Bricks introducing another special UI or a fifth copy option. The loop element can automatically hold all existing queries and they could be reusable/selectable that way too.

That’s the only crucial improvement that I’m expecting from a Bricks 2.0, not a rating element. This will be necessary, when Bricks should stay relevant for Pro users.

---

<div class="post-metadata">

**Author:** ![clickfusion63](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/c/3ab097/32.png) [@clickfusion63](https://forum.bricksbuilder.io/u/clickfusion63)\
**Post date:** [March 9, 2025, 10:38am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/6 "2025-03-09T10:38:32Z")

</div>

I have long suggested a good idea in my opinion, but it was not implemented. This would be a good alternative. We prepare an array (or json) and this array will already work as a source for the cycle. For example, like this. It is possible to implement this as a separate element, but I think the meaning is clear.

Data extraction approach similar to loop source from “ACF group repeater”

 ![545454](https://forum.bricksbuilder.io/uploads/default/original/3X/e/f/efea1bdfe3e24aedfd4877106a2b00c712616713.png)

---

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [March 9, 2025, 11:09am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/7 "2025-03-09T11:09:20Z")

</div>

Yeah, that would be an extension of the available loop inputs, which should no be tied to posts/categories etc. in the future. But this doesn’t solve the issues that Bricks has, due to the coupling of query ↔ element.

A loopable element can hold data and provide access to the properties via dynamic data, no matter if it’s from a query, JSON or a static array.

---

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [April 7, 2025, 8:12pm UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/8 "2025-04-07T20:12:55Z")

</div>

Why a dedicated loop eleement?

> **[The Perfect Loop Architecture](https://etchwp.com/the-perfect-loop-architecture/)**
>
> There are two basic ways to loop something in a page builder environment: a “Loop” element and a toggle-based “loop” feature. Oxygen Builder, for example, has a Loop element that they call a “Repeater.

---

<div class="post-metadata">

**Author:** ![aidardev](https://forum.bricksbuilder.io/user_avatar/forum.bricksbuilder.io/aidardev/32/29195_2.png) [@aidardev](https://forum.bricksbuilder.io/u/aidardev)\
**Post date:** [July 27, 2025, 10:07am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/9 "2025-07-27T10:07:34Z")

</div>

Great idea, fully support this feature request.

The current query loop limitation (single root element) makes common tasks unnecessarily complex. Simple things like inserting ads every N posts require custom PHP code and developer skills.

A dedicated Loop Element would solve this elegantly - you could add any elements within the loop iteration without DOM restrictions or complex workarounds.

This would make Bricks much more flexible for everyday content organization tasks that currently need custom development.

---

<div class="post-metadata">

**Author:** ![aidardev](https://forum.bricksbuilder.io/user_avatar/forum.bricksbuilder.io/aidardev/32/29195_2.png) [@aidardev](https://forum.bricksbuilder.io/u/aidardev)\
**Post date:** [August 25, 2025, 9:23am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/10 "2025-08-25T09:23:47Z")

</div>

Just noticed the Query Manager feature was added to roadmap - this Loop Element request perfectly complements it.

With Query Manager handling the logic and Loop Element handling the structure, we’d have the perfect separation of concerns that pro users need.

**Key additional benefits the Loop Element would bring:**

- Remove element type restrictions - currently only containers/blocks can be looped, Loop Element would allow looping ANY element (images, text, component instances, etc) without wrapper requirements
- Loop Elements could be also saved as reusable components
- Clean separation of query logic from presentation elements

**Query arguments flexibility:**  
Global queries from Query Manager could accept dynamic arguments (like `posts_per_page`, `category`, etc.) that each Loop Element instance could override. This would make queries truly reusable - one “Latest Posts” query could be used with different post counts across the site.

Example: Create a global “Products by Category” query, then use it in different Loop Elements with different category arguments - homepage shows 6 products, category page shows 12, sidebar shows 3.

This combination would make Bricks significantly more powerful for complex layouts while keeping simple tasks… simple.

---

<div class="post-metadata">

**Author:** ![Maexxx](https://forum.bricksbuilder.io/letter_avatar_proxy/v4/letter/m/ccd318/32.png) [@Maexxx](https://forum.bricksbuilder.io/u/Maexxx)\
**Post date:** [June 25, 2026, 8:19am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/12 "2026-06-25T08:19:37Z")

</div>

And how does it work? I neither find the relevant changelog entry, nor the solution in the docs.

---

<div class="post-metadata">

**Author:** ![itchycode](https://forum.bricksbuilder.io/user_avatar/forum.bricksbuilder.io/itchycode/32/4542_2.png) [@itchycode](https://forum.bricksbuilder.io/u/itchycode)\
**Post date:** [June 25, 2026, 9:38am UTC](https://forum.bricksbuilder.io/t/loopable-wrapper-element-with-no-html-output/29701/13 "2026-06-25T09:38:57Z")

</div>

Hi @Maexxx

I am sorry that it was a mistake because this forum thread was recorded in our internal task incorrectly, so the bricks assistant replied to the wrong thread. I just removed it.

Regards,  
Jenn
