Эта функция проверяет наличие данных в родительском поле (таком как Repeater (Повторитель) или Flexible Content). Каждую итерацию цикла функция проверяет есть ли еще данные, которые не выведены в цикле, и возвращает true
или false
.
Это функция работает в сочетании с the_row()
с помощью которой осуществляется переход на следующую строку в данных.
Функция have_row()
вместе с the_row()
специально созданы для совместной работы как have_posts()
и the_post()
в WordPress.
have_rows( $selector, [$post_id = false] );
$selector
(строка) (Обязательный параметр) Имя или ключ поля$post_id
(смешанный тип) (Необязательный) ID поста для которого нужно вывести данные. По умолчанию это текущий пост.Возвращает булевый тип. Если данные есть, то true
В примере показано как цикл итерирует элементы Повторителя и именем "parent_field" и подгружает его дочерние поля.
if( have_rows('parent_field') ):
while ( have_rows('parent_field') ) : the_row();
$sub_value = get_sub_field('sub_field');
// Do something...
endwhile;
else :
// no rows found
endif;
Цикл создает разметку из поля Повторителя чтобы создать слайдер.
<?php if( have_rows('slides') ): ?>
<ul class="slides">
<?php while( have_rows('slides') ): the_row();
$image = get_sub_field('image');
?>
<li>
<?php echo wp_get_attachment_image( $image, 'full' ); ?>
<p><?php the_sub_field('caption'); ?></p>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>