对于我正在创建的自定义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>
是什么原因导致图像数据无法循环?
答案 0 :(得分:4)
您的代码看起来不错,但检查过我的操作后我相信您应该使用get_sub_field
代替get_field
http://www.advancedcustomfields.com/resources/get_sub_field/
您对使用数组[&#39; url&#39;]部分的评论也很重要。这对我有用;
$image = get_sub_field('img');
if( !empty($image) ): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>
答案 1 :(得分:4)
我认为这就是你要做的事情:
<?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;
?>
这假设您在ACF设置中输出图像对象而不是网址。