Гибкий контент

Описание

Поле «Гибкий контент» предоставляет простой структурированный редактор на основе блоков.

Используя макеты и подмассивы для проектирования доступных блоков, этот тип поля выступает в роли чистого холста, на котором можно с полным контролем определять, создавать и управлять содержимым.

Скриншоты

Настройки

  • Макеты
    Определяет доступные при редактировании содержимого макеты. Каждый макет содержит настройки метки, имени, ограничения, отображения и полей.

  • Метка кнопки
    Текст, отображаемый на кнопке «Добавить строку».

  • Минимальное количество макетов
    Устанавливает минимальное количество обязательных макетов.

  • Максимальное количество макетов
    Устанавливает максимальное количество разрешенных макетов.

Использование в шаблоне

Поле «Гибкий контент» возвращает многомерный массив, содержащий макеты и значения их подполей.

Получить значение можно с помощью функций have_rows, the_row, get_sub_field и the_sub_field.

Пример цикла

В этом примере показано, как выполнить цикл по значению поля «Гибкий контент» и получить подполя из разных макетов.

<?php

// Проверяем наличие значения.
if( have_rows('content') ):

    // Перебираем строки.
    while ( have_rows('content') ) : the_row();

        // Вариант: макет абзаца.
        if( get_row_layout() == 'paragraph' ):
            $text = get_sub_field('text');
            // Выполняем действие...

        // Вариант: макет загрузки.
        elseif( get_row_layout() == 'download' ): 
            $file = get_sub_field('file');
            // Выполняем действие...

        endif;

    // Завершаем цикл.
    endwhile;

// Значение отсутствует.
else :
    // Выполняем действие...
endif;

Отображение макетов

В этом примере показано, как выполнить цикл по полю «Гибкий контент» и сгенерировать HTML для разных макетов.

<?php if( have_rows('content') ): ?>
    <?php while( have_rows('content') ): the_row(); ?>
        <?php if( get_row_layout() == 'paragraph' ): ?>
            <?php the_sub_field('paragraph'); ?>
        <?php elseif( get_row_layout() == 'image' ): 
            $image = get_sub_field('image');
            ?>
            <figure>
                <?php echo wp_get_attachment_image( $image['ID'], 'full' ); ?>
                <figcaption><?php echo $image['caption']; ?></figcaption>
            </figure>
        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

Обновлено: 30.09.2026