the_sub_field()

Обзор

Функция the_sub_field отображает вложенное поле для циклов повторителя и гибкого содержания. Эта функция используется только внутри цикла have_rows().

Это тоже самое, что echo get_sub_field(‘name’);.

Параметры

<?php the_sub_field($sub_field_name, $format_value); ?>
  • $sub_field_name (строка) (обязательное) Имя поля, которое необходимо вывести.
  • $format_value (логический) (необязательное) Возвращать форматированные данные или нет. По умолчанию true.

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

Базовое (Повторитель)

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

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

    while( have_rows('parent_field') ) : the_row(); 
        
        ?>
        <p><?php the_sub_field('sub_field'); ?></p>
		<?php
			
    endwhile;

endif;

?>

Базовое (Гибкое содержание)

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

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

    while( have_rows('parent_field') ) : the_row();
		
		// получаем макет гибкого содержания
		$layout = get_row_layout();
		
		
		// макет 1
		if( $layout === 'layout_1' ): ?>
			
			<div class="layout-1">
				<p><?php the_sub_field('sub_field_1'); ?></p>
			</div>

		<?php // макет 1	
		elseif( $layout === 'layout_2' ): ?>
			
			<div class="layout-2">
				<p><?php the_sub_field('sub_field_2'); ?></p>
			</div>
			
		<?php endif;

    endwhile;

endif;

?>

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

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

<?php 

// родительский цикл
if( have_rows('parent_repeater') ):

    while( have_rows('parent_repeater') ) : the_row();
    
    	?>
		
		<div class="row">
			
			<h3><?php the_sub_field('parent_title'); ?></h3>
			
			<?php 
				
			// дочерний цикл
			if( have_rows('child_repeater') ): ?>
				
				<ul>
			
			    <?php while( have_rows('child_repeater') ) : the_row(); ?>
				
					<li><b><?php the_sub_field('child_title'); ?></b> <?php the_sub_field('child_value'); ?></li>
			
				<?php endwhile; ?>
				
				</ul>
			
			<?php endif;
			// конец дочерний цикл
			
			?>
			
		</div>
		
		<?php		
		
    endwhile;

endif;
// конец родительский цикл

?>

Похожие