get_sub_field()

Описание

Возвращает значение определённого субполя в цикле поля Repeater или Flexible Content.

Параметры

get_sub_field($selector, [$format_value = true], [$escape_html = false]);
  • $selector (string) (Обязательный) Имя субполя или ключ поля.
  • $format_value (bool) (Необязательный) Применять ли форматирование. По умолчанию — true.
  • $escape_html (bool) (Необязательный) Начиная с версии 6.2.6 — возвращать экранированную HTML-безопасную версию значения поля. Для этого параметра требуется, чтобы $format_value имел значение true. По умолчанию — false.

Возвращаемое значение

(mixed) Значение субполя.

Примеры

Получение значения из поля Repeater.

В этом примере показано, как выполнить перебор поля Repeater и получить значение субполя.

if( have_rows('parent_field') ):
    while ( have_rows('parent_field') ) : the_row();
        $sub_value = get_sub_field('sub_field');
        // Выполнить действие...
    endwhile;
else :
    // строки не найдены
endif;

Получение значения из поля Flexible Content.

В этом примере показано, как выполнить перебор поля Flexible Content и получить значение субполя.

if( have_rows('parent_field') ):
    while( have_rows('parent_field') ): the_row();

        // Макет 1.
        if( get_row_layout() == 'layout_1' ):

            // Значение макета 1.
            $value = get_sub_field('sub_field_1');

        // Макет 2.
        elseif( get_row_layout() == 'layout_2' ):

            // Значение макета 2.
            $value = get_sub_field('sub_field_2');

        endif;

    endwhile;
endif;

Вложенные циклы

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

/**
 * Структура полей:
 *
 * - parent_repeater (Repeater)
 *   - parent_title (Text)
 *   - child_repeater (Repeater)
 *     - child_title (Text)
 */
if( have_rows('parent_repeater') ):
    while( have_rows('parent_repeater') ) : the_row();

        // Получить значение родительского поля.
        $parent_title = get_sub_field('parent_title');

        // Перебор строк вложенного Repeater.
        if( have_rows('child_repeater') ):
            while( have_rows('child_repeater') ) : the_row();

                // Получить значение дочернего поля.
                $child_title = get_sub_field('child_title');

            endwhile;
        endif;
    endwhile;
endif;

Обновлено: 30.09.2026