Dynamic Repeater
Connect any Elementor repeater widget to a live data source. Map fields, apply in one click, and bind pages to update automatically at render time.
How it works
The Dynamic Repeater Builder adds a ✦ Dynamic Populate button next to every repeater control. Clicking it opens a modal where you:
- Choose a source (WordPress Posts, Taxonomy Terms, ACF Repeater, or raw JSON).
- Configure the source.
- Open the Mapping tab and connect source fields to repeater sub-fields.
- Hit Apply.
Data sources
WordPress Posts
| Config | Description |
|---|---|
| Post Type | Any registered post type |
| Posts per page | Row limit. -1 for all. |
| Order by | date / title / menu_order / modified / rand |
| Order | ASC / DESC |
| Taxonomy filter | Filter by taxonomy and terms |
Tokens: {post_title}, {post_excerpt}, {post_date}, {post_author}, {permalink}, {thumbnail_url}, {thumbnail_id}
Taxonomy Terms
Tokens: {name}, {slug}, {description}, {count}, {term_link}
ACF Repeater
| Config | Description |
|---|---|
| Field name | The ACF field slug. Autocomplete dropdown. |
| Post ID | Optional. Empty = currently queried post. |
Raw JSON
[
{ "title": "Starter", "price": "$0", "cta": "Get Free" },
{ "title": "Pro", "price": "$49", "cta": "Buy Now" }
]
Field mapping
| Column | Description |
|---|---|
| Expression | Token like {post_title}, combination {first} {last}, or literal |
| Fallback | Static value when expression resolves to empty |
| Skip if empty | Omit the field if the value is empty |
{post_title} ← single field
{first_name} {last_name} ← concatenation
Designed by {author} ← mixed static + dynamic
{thumbnail_id} ← numeric ID (for image[id])
Apply vs Runtime Binding
Apply (one-time)
Generates rows now and writes them into the widget's repeater data. Re-apply to re-sync.
Runtime Binding
Intercepts Elementor's page data at render time and injects the correct rows for the queried post. A Slides widget on a Loop Item template shows the ACF repeater data for each post.
Caching
| Option | Default | Description |
|---|---|---|
| Use cache | On | Caches source rows in a transient |
| Cache TTL | 300s | Set 0 to always fetch fresh |
| Apply mode | Replace | Replace or Append |
| Empty state | Keep | When source returns zero rows |
Supported widgets
Slides, Price List, Icon List, Media Carousel, Testimonial Carousel, Image Carousel, Reviews, Hotspot, Loop Carousel.