中继器中的ACF图像无法正常工作

时间:2015-04-07 16:47:07

标签: php wordpress plugins repeater advanced-custom-fields

对于我正在创建的自定义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>

是什么原因导致图像数据无法循环?

2 个答案:

答案 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设置中输出图像对象而不是网址。