{"id":235638,"date":"2025-05-31T16:01:24","date_gmt":"2025-05-31T16:01:24","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dynamic-acf-repeater-widget-for-elementor-loops-and-templates\/"},"modified":"2026-05-11T11:22:36","modified_gmt":"2026-05-11T11:22:36","slug":"repeater2template-for-acf-repeater-and-elementor","status":"publish","type":"plugin","link":"https:\/\/pirate.wordpress.org\/plugins\/repeater2template-for-acf-repeater-and-elementor\/","author":23299455,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.6","stable_tag":"1.0.6","tested":"6.9.4","requires":"5.5","requires_php":"7.2","requires_plugins":null,"header_name":"Repeater2Template Widget for ACF Repeater and Elementor","header_author":"SlickWebDeveloper","header_description":"A custom  widget for Elementor to easily render ACF Repeater field data inside Elementor Loop Grids and Templates with Repeater subfield dynamic tag support.","assets_banners_color":"c3badf","last_updated":"2026-05-11 11:22:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":90,"downloads":1307,"num_ratings":6,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"slickwebdeveloper","date":"2025-05-31 16:00:40"},"1.0.1":{"tag":"1.0.1","author":"slickwebdeveloper","date":"2025-09-01 13:11:23"},"1.0.2":{"tag":"1.0.2","author":"slickwebdeveloper","date":"2025-09-19 18:40:34"},"1.0.3":{"tag":"1.0.3","author":"slickwebdeveloper","date":"2025-10-04 16:26:55"},"1.0.4":{"tag":"1.0.4","author":"slickwebdeveloper","date":"2025-11-01 16:13:56"},"1.0.5":{"tag":"1.0.5","author":"slickwebdeveloper","date":"2026-02-24 18:21:10"},"1.0.6":{"tag":"1.0.6","author":"slickwebdeveloper","date":"2026-05-11 11:22:36"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":6},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3353871,"resolution":"256x256","location":"assets","locale":"","width":320,"height":320}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3353871,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3353949,"resolution":"772x250","location":"assets","locale":"","width":722,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3364717,"resolution":"1","location":"assets","locale":"","width":396,"height":862},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3372904,"resolution":"2","location":"assets","locale":"","width":398,"height":862},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3372904,"resolution":"3","location":"assets","locale":"","width":393,"height":872}},"screenshots":{"1":"Widget settings panel inside Elementor.","2":"ACF Repeater source with mapped subfields.","3":"JSON Array and JSON URL mode in action."}},"plugin_section":[],"plugin_tags":[2211,76538,2244,975,162],"plugin_category":[43,59],"plugin_contributors":[243200],"plugin_business_model":[],"class_list":["post-235638","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-elementor","plugin_tags-repeater","plugin_tags-template","plugin_tags-widget","plugin_category-customization","plugin_category-utilities-and-tools","plugin_contributors-slickwebdeveloper","plugin_committers-slickwebdeveloper"],"banners":{"banner":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/banner-772x250.png?rev=3353949","banner_2x":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/banner-1544x500.png?rev=3353871","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/icon-256x256.png?rev=3353871","icon_2x":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/icon-256x256.png?rev=3353871","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/screenshot-1.png?rev=3364717","caption":"Widget settings panel inside Elementor."},{"src":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/screenshot-2.png?rev=3372904","caption":"ACF Repeater source with mapped subfields."},{"src":"https:\/\/ps.w.org\/repeater2template-for-acf-repeater-and-elementor\/assets\/screenshot-3.png?rev=3372904","caption":"JSON Array and JSON URL mode in action."}],"raw_content":"<!--section=description-->\n<p>\u26a0\ufe0f <strong>Requires Elementor Pro<\/strong><\/p>\n\n<p><strong>Tired of ACF Repeater fields that won't cooperate with Elementor?<\/strong>\nRepeater2Template fixes that \u2014 instantly. Connect any repeater data source to any Elementor template and watch every row render exactly how you designed it. No PHP. No shortcodes. No workarounds.<\/p>\n\n<p>Whether you're working with ACF Repeater fields, a raw JSON array, or a live API endpoint \u2014 this widget loops through your data and outputs each item using your own Elementor saved template. Full design control, fully native experience.<\/p>\n\n<p>\ud83c\udfa5 <strong>See It In Action:<\/strong><\/p>\n\n<p>https:\/\/youtu.be\/CCmqQ6F3_sE<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=iHULh_O-Hsk<\/p>\n\n<h4>\ud83d\udca1 Key Features<\/h4>\n\n<ul>\n<li>\ud83d\udd0c <strong>3 data sources, one widget<\/strong> \u2014 ACF Repeater, JSON Array, or live data from any JSON URL \/ API.<\/li>\n<li>\ud83c\udfa8 <strong>Design freedom<\/strong> \u2014 pick any Elementor Pro saved template to render each row your way.<\/li>\n<li>\ud83d\uddc2 <strong>Flexible ACF sources<\/strong> \u2014 current post, any specific post by ID, or a global ACF Options Page.<\/li>\n<li>\ud83c\udff7 <strong>Subfield-to-dynamic-tag mapping<\/strong> \u2014 keeps your templates clean, reusable, and truly dynamic.<\/li>\n<li>\ud83c\udf10 <strong>Live API rendering<\/strong> \u2014 inject dynamic parameters into JSON URLs for real-time, context-aware content.<\/li>\n<li>\ud83d\udd22 <strong>Row limit control<\/strong> \u2014 display only a set number of items from any data source.<\/li>\n<li>\u2705 <strong>100% no-code<\/strong> \u2014 built entirely inside Elementor. If you can drag a widget, you can use this.<\/li>\n<\/ul>\n\n<h4>\ud83d\udd01 Flexible ACF Data Sources<\/h4>\n\n<p>Real-world projects rarely keep all data tied to the current post. That's why Repeater2Template supports three ACF source types:<\/p>\n\n<ul>\n<li><strong>Current Post<\/strong> \u2192 repeater data tied to the page being viewed.<\/li>\n<li><strong>Specific Post (by ID)<\/strong> \u2192 use any post as a centralized \"data hub\" \u2014 reuse it across unlimited templates without duplication.<\/li>\n<li><strong>Options Page<\/strong> \u2192 pull from any registered ACF Options Page for global content like team sections, banners, menus, or footers.<\/li>\n<\/ul>\n\n<p>Centralize once. Reuse everywhere.<\/p>\n\n<h4>\ud83c\udf10 JSON Array &amp; JSON URL \u2014 No ACF Needed<\/h4>\n\n<p>Not an ACF user? No problem. Repeater2Template handles raw JSON just as powerfully.<\/p>\n\n<p><strong>Two JSON modes:<\/strong><\/p>\n\n<ol>\n<li><p><strong>JSON Array<\/strong> \u2014 paste your data directly into the widget. Instant, portable, zero setup.<\/p>\n\n<p>[\n  { \"title\": \"Book A\", \"author\": \"Author X\", \"image\": \"https:\/\/example.com\/book1.jpg\" },\n  { \"title\": \"Book B\", \"author\": \"Author Y\", \"image\": \"https:\/\/example.com\/book2.jpg\" }\n]<\/p><\/li>\n<li><p><strong>JSON URL<\/strong> \u2014 fetch live data from any internal or external API endpoint.<\/p><\/li>\n<\/ol>\n\n<ul>\n<li>Supports dynamic URL parameters (post ID, category, user meta, and more).<\/li>\n<li>Perfect for product feeds, API-driven testimonials, blog lists, or user-specific content.<\/li>\n<li>The plugin parses the response automatically and renders each object using your Elementor template.<\/li>\n<\/ul>\n\n<p><strong>Example:<\/strong>\n    https:\/\/api.example.com\/books?category=fiction&amp;user_id={{user_id}}<\/p>\n\n<h4>\u2b50 What Builders Are Saying<\/h4>\n\n<p><em>\"Extremely simple and yet so powerful!\"<\/em> \u2014 davidedev<\/p>\n\n<p><em>\"Saves tons of time and just works \u2014 super intuitive!\"<\/em> \u2014 akhileshtenguriya<\/p>\n\n<p><em>\"This is literally a gem. All must try this.\"<\/em> \u2014 mairaaah<\/p>\n\n<p><em>\"The support went the extra mile. Excellent plugin.\"<\/em> \u2014 indyparker<\/p>\n\n<p><strong>5 out of 5 stars \u2014 every single review.<\/strong><\/p>\n\n<h3>How It Works<\/h3>\n\n<h4>Step 1: Design Your Item Template<\/h4>\n\n<ol>\n<li>Go to <strong>Templates \u2192 Saved Templates \u2192 Add New<\/strong>.<\/li>\n<li>Choose <strong>Section<\/strong> or <strong>Container<\/strong>.<\/li>\n<li>Design one item \u2014 a team card, a testimonial block, a product tile, anything.<\/li>\n<li>Save the template.<\/li>\n<\/ol>\n\n<h4>Step 2: Drop In the Widget<\/h4>\n\n<ol>\n<li>Open your page in <strong>Elementor<\/strong>.<\/li>\n<li>Search for <strong>Repeater2Template<\/strong> and drag it onto the canvas.<\/li>\n<li>Select your data source:\n\n<ul>\n<li><code>ACF Repeater<\/code> \u2014 pick your field by key or name.<\/li>\n<li><code>JSON URL \/ Array<\/code> \u2014 paste your JSON or enter a URL.<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<h4>Step 3: Connect &amp; Done<\/h4>\n\n<p>Select the Elementor template from Step 1. The widget loops through every item and renders each one using your template \u2014 automatically.<\/p>\n\n<p><strong>No PHP. No shortcodes. No headaches.<\/strong><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload plugin files to <code>\/wp-content\/plugins\/<\/code> or install directly via the WordPress Admin Panel.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Ensure Elementor Pro is active (ACF Pro only needed for repeater fields).<\/li>\n<li>Set up your ACF Repeater field \u2014 or prepare your JSON array \/ API URL.<\/li>\n<li>Create an Elementor Pro Saved Template for how a single item should look.<\/li>\n<li>Add the <strong>Repeater2Template Widget<\/strong> to your page and select your data source:\n\n<ul>\n<li>ACF Repeater (Current Post, Specific Post by ID, or Options Page)<\/li>\n<li>JSON Array<\/li>\n<li>JSON from URL<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20require%20acf%20pro%3F\"><h3>Does it require ACF Pro?<\/h3><\/dt>\n<dd><p>Only for ACF Repeater fields. JSON Array and JSON URL modes work completely independently \u2014 no ACF required.<\/p><\/dd>\n<dt id=\"can%20it%20pull%20live%20data%20from%20external%20apis%3F\"><h3>Can it pull live data from external APIs?<\/h3><\/dt>\n<dd><p>Yes. The JSON URL mode fetches from any API endpoint and supports dynamic parameters, so content updates contextually per page or user.<\/p><\/dd>\n<dt id=\"does%20it%20cache%20remote%20json%20data%3F\"><h3>Does it cache remote JSON data?<\/h3><\/dt>\n<dd><p>Data is fetched fresh on every render. Caching options are planned for a future release.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20elementor%20free%3F\"><h3>Can I use this with Elementor Free?<\/h3><\/dt>\n<dd><p>No \u2014 Elementor Pro is required for saved template and dynamic tag support.<\/p><\/dd>\n<dt id=\"what%20field%20types%20are%20supported%3F\"><h3>What field types are supported?<\/h3><\/dt>\n<dd><p>Text, images, URLs, and media fields. Image URLs are handled automatically with proper <code>&lt;img&gt;<\/code> tag output.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added: Row limit control \u2014 display only a set number of items from any data source.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added: JSON URL support \u2014 fetch and render live data from any API or custom endpoint with dynamic parameters.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: Flexible ACF data sources \u2014 Current Post, Specific Post by ID, and Options Page.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added: JSON Array as a standalone data source.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 full loop and template rendering support for ACF Repeater fields.<\/li>\n<\/ul>","raw_excerpt":"The missing bridge between your ACF Repeater fields and your Elementor templates. Loop ACF Repeater fields or any JSON \u2014 rendered beautifully, with ze &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/235638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=235638"}],"author":[{"embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/slickwebdeveloper"}],"wp:attachment":[{"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=235638"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=235638"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=235638"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=235638"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=235638"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pirate.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=235638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}