এখন পর্যন্ত প্রতিটি ফিল্ড টাইপ ঠিক একটি মান সংরক্ষণ করে। একটি Repeater ফিল্ড এদের একটি সম্পূর্ণ তালিকা সংরক্ষণ করে — সারি যা একজন এডিটর স্বাধীনভাবে যোগ, সরাতে, আর পুনর্বিন্যাস করতে পারেন, প্রতিটিতে একই সেট সাব-ফিল্ড থাকে।
উদাহরণস্বরূপ, একটি প্রোডাক্টে একটি "Features" repeater-এ প্রতি সারিতে দুটো সাব-ফিল্ড থাকতে পারে: feature_title আর feature_description। একজন এডিটর একটি "Add Row" বাটন দেখেন আর তিনটি সারি, দশটি সারি, বা শূন্যতে শেষ করতে পারেন — টেমপ্লেট কোড ঠিক একই থাকে যতগুলোই হোক না কেন।
<?php if ( have_rows( 'features' ) ) : ?>
<ul>
<?php while ( have_rows( 'features' ) ) : the_row(); ?>
<li>
<strong><?php the_sub_field( 'feature_title' ); ?></strong>
<?php the_sub_field( 'feature_description' ); ?>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>প্যাটার্নটি ইচ্ছাকৃতভাবে আগের Loop-এর প্রতিধ্বনি করে: have_rows() আরেকটি সারি আছে কিনা চেক করে, the_row() তাতে এগিয়ে যায়, আর the_sub_field() / get_sub_field() বর্তমান সারি থেকে একটি সাব-ফিল্ড পড়ে — সাধারণ ফিল্ডের একই the_/get_ বিভাজন, শুধু একবারে একটি সারিতে সীমাবদ্ধ।
একটি Group ফিল্ড দেখতে একইরকম কিন্তু ভিন্ন একটি সমস্যা সমাধান করে — এটি একটি ফিল্ডের নিচে সম্পর্কিত সাব-ফিল্ডের একটি নির্দিষ্ট, non-repeating সেট বান্ডেল করে, বেশিরভাগ কিছু পুনরাবৃত্তি করার বদলে একটি বড় field group সংগঠিত রাখতে:
<?php $address = get_field( 'company_address' ); ?>
<p><?php echo esc_html( $address['street'] ); ?>, <?php echo esc_html( $address['city'] ); ?></p>একটি Group-এ get_field() প্রতিটি সাব-ফিল্ডকে একটি কী হিসেবে রেখে একটি অ্যারে রিটার্ন করে — কোনো looping লাগে না, কারণ সবসময় ঠিক একটিই থাকে।
Repeater অগভীর রাখুন
Repeater টেকনিক্যালি একে অপরের ভেতরে নেস্ট করা যায়, কিন্তু এক লেভেলের বেশি এড়িয়ে যাওয়া ভালো। একটি repeater-এর-ভেতরে-repeater যে কেউ এটি পূরণ করেন তার জন্য সত্যিই একটি বিশ্রী এডিটিং অভিজ্ঞতা — ডেটার যদি এতটা গঠন দরকার হয়, একটি দ্বিতীয় কাস্টম পোস্ট টাইপ (একটি Post Object বা Relationship ফিল্ড দিয়ে সংযুক্ত) সাধারণত ভালো ফিট।
গঠনবদ্ধ, পুনরাবৃত্তিযোগ্য কন্টেন্ট কাভার হয়ে যাওয়ার পর, পরের পাঠ এমন ডেটা দেখে যা আদৌ কোনো একক পোস্টের অন্তর্গত নয় — সাইট-জোড়া সেটিংস, একটি SCF options page ব্যবহার করে।