Группа

Описание

Поле Group позволяет объединять поля в группы. Оно помогает лучше организовать интерфейс экрана редактирования и данные.

При сохранении и загрузке значений поле Group использует имена родительского и дочернего полей. Например, поле Group с именем ‘hero’ и подполем ‘image’ будет сохранено в базе данных с именем метаполя ‘hero_image’.

Скриншоты

История изменений

  • Добавлено в версии 5.6.0.

Настройки

  • Подполя
    Определяет подполя, которые будут отображаться внутри этой группы.

  • Разметка
    Определяет стиль разметки, используемый для отображения интерфейса поля.
    Block: подполя отображаются в виде блоков, один за другим.
    Table: подполя отображаются в одной строке таблицы. Названия будут отображаться в заголовке таблицы.
    Row: подполя отображаются в таблице из двух столбцов. Названия будут отображаться в первом столбце.

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

Поле Group возвращает массив, содержащий значение каждого под-поля в формате name => value.

Отображение содержимого

В этом примере показано, как отобразить содержимое поля Group.

<?php
$hero = get_field('hero');
if( $hero ): ?>
    <div id="hero">
        <img src="<?php echo esc_url( $hero['image']['url'] ); ?>" alt="<?php echo esc_attr( $hero['image']['alt'] ); ?>" />
        <div class="content">
            <?php echo $hero['caption']; ?>
            <a href="<?php echo esc_url( $hero['link']['url'] ); ?>"><?php echo esc_html( $hero['link']['title'] ); ?></a>
        </div>
    </div>
    <style type="text/css">
        #hero {
            background-color: <?php echo esc_attr( $hero['color'] ); ?>;
        }
    </style>
<?php endif; ?>

Пример цикла

В этом примере показано, как отобразить ту же группу с помощью функции have_rows(). Это похоже на перебор значения поля Repeater, но данное значение содержит только одну строку.

<?php if( have_rows('hero') ): ?>
    <?php while( have_rows('hero') ): the_row(); 

        // Получаем значения подполей.
        $image = get_sub_field('image');
        $link = get_sub_field('link');

        ?>
        <div id="hero">
            <img src="<?php echo esc_url( $image['url'] ); ?>" alt="<?php echo esc_attr( $image['alt'] ); ?>" />
            <div class="content">
                <?php the_sub_field('caption'); ?>
                <a href="<?php echo esc_url( $link['url'] ); ?>"><?php echo esc_attr( $link['title'] ); ?></a>
            </div>
        </div>
        <style type="text/css">
            #hero {
                background-color: <?php the_sub_field('color'); ?>;
            }
        </style>
    <?php endwhile; ?>
<?php endif; ?>

Обновлено: 30.09.2026