Эта функция устаревшая. Пожалуйста, используйте have_rows().
Обзор
Функция has_sub_field() используется в PHP цикле «while» для перебора каждой итерации повторителя / гибкого содержимого и используется вместе с этими функциями:
Параметры
<?php has_sub_field($field_name, $post_id); ?>
- $field_name (строка) (обязательное) Имя поля повторителя / гибкого содержимого, которое необходимо вывести.
- $post_id (число) (необязательное) ID поста. По умолчанию текущий пост. Также может быть таксономией / пользователем / страницей настроек и т.д.
Использование
<?php
/*
* Перебираем Повторитель
*/
if( get_field('repeater') ): ?>
<?php while( has_sub_field('repeater') ): ?>
<div>
<img src="<?php the_sub_field('image'); ?>" alt="<?php the_sub_field('alt'); ?>" />
<p><?php the_sub_field('content'); ?></p>
</div>
<?php endwhile; ?>
<?php endif;
/*
* Перебираем Гибкое содержимое
*/
if( get_field('flexible_content') ): ?>
<?php while( has_sub_field("flexible_content") ): ?>
<?php if(get_row_layout() == "paragraph"): // макет: Paragraph ?>
<div>
<?php the_sub_field("content"); ?>
</div>
<?php elseif(get_row_layout() == "file"): // макет: File ?>
<div>
<a href="<?php the_sub_field("file"); ?>" ><?php the_sub_field("name"); ?></a>
</div>
<?php elseif(get_row_layout() == "featured_posts"): // макет: Featured Posts ?>
<div>
<h2><?php the_sub_field("title"); ?></h2>
<?php the_sub_field("content"); ?>
<?php if(get_sub_field("posts")): ?>
<ul>
<?php foreach(get_sub_field("posts") as $p): ?>
<li><a href="<?php echo get_permalink($p->ID); ?>"><?php echo get_the_title($p->ID); ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endwhile; ?>
<?php endif;
/*
* Перебираем вложенный Повторитель
*/
if( get_field('parent_repeater') ): ?>
<?php while( has_sub_field('parent_repeater') ): ?>
<div>
<?php if( get_sub_field('child_repeater') ): ?>
<ul>
<?php while( has_sub_field('child_repeater') ): ?>
<li><?php the_sub_field('item'); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
</div>
<?php endwhile; ?>
<?php endif;
/*
* Перебираем вложенный Повторитель (с произвольным ID поста)
*/
if( get_field('parent_repeater', 123) ): ?>
<?php while( has_sub_field('parent_repeater', 123) ): ?>
<div>
<?php
/*
* примечание: вам не нужно указывать $post_id для любой функции, которая работает с вложенными полями
*/
if( get_sub_field('child_repeater') ): ?>
<ul>
<?php while( has_sub_field('child_repeater') ): ?>
<li><?php the_sub_field('item'); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
</div>
<?php endwhile; ?>
<?php endif;
?>