ворд-пресс.рф
Разработка

ACF Repeater: повторяющиеся поля и безопасный вывод на сайте

Пошаговое руководство по Repeater в ACF PRO с коротким примером вывода FAQ и советами по производительности.

Repeater в ACF PRO нужен для повторяющихся групп однотипных полей: FAQ, этапов работы, карточек команды. Например, вместо пяти отдельных пар полей «вопрос–ответ» редактор добавляет столько строк, сколько нужно.

Настройка

  1. Убедитесь, что у вас доступен тип поля Repeater в установленной редакции ACF.
  2. Создайте группу полей и Repeater faq_items.
  3. Добавьте дочерние поля question и answer типа Text/Text Area.
  4. Задайте разумный максимум строк, если количество должно быть ограничено.
  5. Заполните 2–3 строки в редакторе тестовой записи.

Вывод в шаблоне

<?php
if ( function_exists( 'have_rows' ) && have_rows( 'faq_items' ) ) {
    echo '<dl class="faq-list">';
    while ( have_rows( 'faq_items' ) ) {
        the_row();
        $question = get_sub_field( 'question' );
        $answer   = get_sub_field( 'answer' );
        if ( ! is_string( $question ) || $question === '' ) {
            continue;
        }
        echo '<dt>' . esc_html( $question ) . '</dt>';
        echo '<dd>' . esc_html( is_string( $answer ) ? $answer : '' ) . '</dd>';
    }
    echo '</dl>';
}

Здесь намеренно используются текстовые поля. Если ответ должен включать ссылки и абзацы, используйте WYSIWYG с явным разрешением нужного HTML через wp_kses_post().

Когда Repeater — плохой выбор

Если записи должны иметь собственные URL, SEO-заголовки, права редактирования и фильтры, лучше завести CPT. Для большого каталога товаров, филиалов или событий Repeater неудобен: строки не ведут себя как самостоятельные объекты WordPress.

Производительность

В крупных Repeater-полях админка может тормозить. В ACF есть настройки количества строк и пагинации в редакторе, но пагинация полей не означает автоматическую пагинацию вывода на сайте. Объём данных в шаблоне нужно контролировать отдельно.

Приёмка

  • Пустой Repeater не создаёт пустой список.
  • Вопросы и ответы отображаются в исходном порядке.
  • HTML не выводится без проверки контекста.
  • Превышение допустимого объёма не ломает редактор.
  • После отключения ACF шаблон не вызывает fatal error.

Перед запуском убедитесь, что контентная модель не станет причиной SEO-дублей или бесконечно растущей записи.

Источник: https://www.advancedcustomfields.com/resources/repeater/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.