Группа (Group)

Обзор

Поле «группа» позволяет сгруппировать поля друг с другом. Основная цель — лучше организовать пользовательский интерфейс экрана редактирования, но также можно использовать для упорядочивания данных.

Данное поле сохраняется с использованием и родительского и дочернего имени поля. Например, групповое поле с именем «hero» с подполем «image» будет сохранено в базе данных с использованием мета-имени hero_image.

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

  • Добавлено в 5.6.0

Настройки

ИмяОписание
Вложенные поляОпределяет подполя, которые появятся в этой группе
БлокСтиль, используемый для отображения подполей:
  • Блок — стиль отображения по умолчанию. Метки появятся над полями.
  • Таблица — отображает каждое подполе рядом друг с другом в одной таблице.
  • Строка — отображает каждое подполе ниже друг друга с выровненными по левому краю метками.

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

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

Базовый

В этом примере показано, как отобразить содержимое группы.

<?php
		
// переменные
$hero = get_field('hero');	

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

Цикл

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

<?php if( have_rows('hero') ): 

	while( have_rows('hero') ): the_row(); 
		
		// переменные
		$image = get_sub_field('image');
		$link = get_sub_field('link');
		
		?>
		<div id="hero">
			<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
			<div class="content">
				<?php the_sub_field('caption'); ?>
				<a href="<?php echo $link['url']; ?>"><?php echo $link['title']; ?></a>
			</div>
		</div>
		<style type="text/css">
			#hero {
				background: <?php the_sub_field('color'); ?>;
			}
		</style>
	<?php endwhile; ?>
	
<?php endif; ?>