Для вывода полей ACF Repeater внутри другого ACF Repeater в WordPress, требуется несколько шагов.
- Создайте основной ACF Repeater. Это будет внешний цикл, который будет повторяться на основе количества записей в поле Repeater.
- Создайте внутренний ACF Repeater внутри основного Repeater. Этот Repeater будет повторяться на основе количества записей в поле Repeater внутри основного Repeater.
- Внутри внутреннего Repeater добавьте поля, которые вы хотите вывести.
- Всякий раз, когда вы хотите вывести данные из внутреннего Repeater, вы можете использовать функцию getsubfield(), указав имя поля, которое вы хотите вывести. Пример: getsubfield('имя_поля').
- Для доступа к полю внешнего Repeater из внутреннего Repeater, используйте функции getfield() или thefield(), указав имя поля внешнего Repeater, а затем индекс повторителя. Пример: getfield('внешнееполе', $i). Где $i - индекс повторителя внешнего Repeater.
Пример кода:
<?php if( have_rows('внешний_repeater') ): ?> <?php while( have_rows('внешний_repeater') ): the_row(); ?> <!-- Вывод внешних полей --> <?php $i = get_row_index(); ?> <?php echo get_field('внешнее_поле', $i); ?> <!-- Вывод внутреннего репитера --> <?php if( have_rows('внутренний_repeater') ): ?> <?php while( have_rows('внутренний_repeater') ): the_row(); ?> <!-- Вывод внутренних полей --> <?php echo get_sub_field('поле_внутреннего_repeater'); ?> <?php endwhile; ?> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>
В этом примере мы сначала проверяем наличие записей во внешнем Repeater, а затем проходимся по каждой записи, используя функцию therow(). Внутри внешнего цикла мы получаем индекс повторителя с помощью функции getrowindex(). Затем, мы выводим внешее поле, используя функцию getfield() и передавая в параметрах имя поля и индекс повторителя.
Затем, мы проверяем наличие записей во внутреннем Repeater и проходимся по каждой записи, используя функцию therow(). Внутри внутреннего цикла мы выводим внутреннее поле с помощью функции getsub_field().
Этот пример демонстрирует общий подход к выводу полей ACF Repeater внутри другого ACF Repeater в WordPress.