中继器中的 ACF 图像不起作用

Posted

技术标签:

【中文标题】中继器中的 ACF 图像不起作用【英文标题】:ACF Image in Repeater not working 【发布时间】:2015-06-12 08:36:15 【问题描述】:

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

                    <?php endif; ?>
                </div> <?

                    endwhile;

                else :

                    // no rows found

                endif;

                ?>
            </div>

是什么导致图像数据不循环?

【问题讨论】:

也适用于 img 标签“echo $image['url'];”也不能解决问题。 【参考方案1】:

您的代码看起来不错,但是在检查了我是如何做到的之后,我相信您应该使用 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']; ?>"  />

    <?php endif; ?>

【讨论】:

【参考方案2】:

我认为这是你必须做的:

<?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']; ?>"  />
    <?php endwhile;

else :

    // no rows found

endif;

?>

这是假设您在 ACF 设置中输出的是图像对象而不是 url。

【讨论】:

以上是关于中继器中的 ACF 图像不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress:带有过滤器的存档页面不起作用(ACF)

ACF 字段的 WP 查询过滤器不起作用

数据切换在中继器内的按钮上不起作用

中继片段传播不起作用

普通数组上的中继突变不起作用

React Native graphql 查询与中继不起作用