Для создания собственной темы WP я использую ACF. Мне нужно иметь повторитель, который выводит изображения. Я установил его на объект изображения и используя правильный код. На самом деле я пробовал без повторителя, и он работает отлично. Только в ретрансляторе это терпит неудачу.
<div class="row col-md-12">
<?php
// check if the repeater field has rows of data
if( have_rows('pics') ):
// loop through the rows of data
while ( have_rows('pics') ) : the_row();
// display a sub field value
?><div class="col-md-4">
<?php
$image = get_field('img');
if( !empty($image) ): ?>
<img src="<?php echo $image; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>
</div> <?
endwhile;
else :
// no rows found
endif;
?>
</div>
Что заставляет данные изображения не зацикливаться?
Ваш код выглядит нормально, но, проверив, как я это сделал, я считаю, что вы должны использовать get_sub_field
вместо get_field
http://www.advancedcustomfields.com/resources/get_sub_field/
Ваш комментарий об использовании части массива [‘url’] также актуален. Это работает для меня;
$image = get_sub_field('img');
if( !empty($image) ): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>
Я думаю, что это то, что вы должны сделать:
<?php
// check if the repeater field has rows of data
if( have_rows('img') ):
// loop through the rows of data
while ( have_rows('img') ) : the_row();
// display a sub field value
$image = get_sub_field('sub_img'); ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endwhile;
else :
// no rows found
endif;
?>
Это предполагает, что вы выводите объект изображения, а не URL в настройках ACF.