Я часто бачу, як розробники створюють ACF Flexible поля і після цього в шаблоні перербирають назву або слаг поля, наприклад як вказано в документації
<?php
// Check value exists.
if( have_rows('content') ):
// Loop through rows.
while ( have_rows('content') ) : the_row();
// Case: Paragraph layout.
if( get_row_layout() == 'paragraph' ):
$text = get_sub_field('text');
// Do something...
// Case: Download layout.
elseif( get_row_layout() == 'download' ):
$file = get_sub_field('file');
// Do something...
endif;
// End loop.
endwhile;
// No value.
else :
// Do something...
endif;
Безперечно цей спосіб працює і можна підключати темплейт парт, але мені таке не дуже подобається. Тому у своїх WordPress проектах я користуюсь приблизно таким циклом
<?php
if( have_rows('blocks') ):
while ( have_rows('blocks') ) : the_row();
get_template_part('template-parts/acf-blocks/'.get_row_layout());
endwhile;
endif
Функція get_row_layout повертає слаг блока, який я створив. Тому в папці /acf-blocks я просто створюю файл 1 в 1 як слаг блока, наприклад slider.php і точно знаю що файл з циклом міняти не буду