在archive.php中,ACF IMG返回ID而不是URL

时间:2015-01-30 12:37:46

标签: php wordpress image archive advanced-custom-fields

我有一个Wordpress网站,并且在footer.php中有一个带有背景图片的简单div,从ACF选项字段调用,就像这样 -

<div id="footer" style="background-image: url('<?php the_field('footer_background', 'options'); ?>');">

这适用于我的所有页面和模板。但是,当进入一个名为archive.php的博客类别(来自博客页面中的类别小部件)时,它会将网址转换为图像ID并输出'85'而不是网址。

我已经尝试删除archive.php中的所有代码,除了页眉和页脚调用,因为我在那里有东西,但仍然没有运气。 ACF字段肯定设置为“url”,因此它可以在其他任何地方使用。

为什么它会在archive.php页面上转换为ID?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我发现该插件没有修复,但我通过创建一个条件语句来检查该页面是否为标记存档,然后通过返回的ID检索附件URL。 / p>

if (is_tag()) {
    $imgUrl = wp_get_attachment_url( get_field('image', 'option') );
    } else {
        $img = get_field('image', 'option');
        $imgUrl = $img['url'];
    }
}

答案 1 :(得分:0)

我遇到了同样的问题。我的是因为我删除了一个旧字段并在另一个组中使用相同的名称再次创建了它。

发生的事情是旧的 ACF 密钥保持不变。这个非常SO的问题是mentioned at ACF forum,我在这里找到了有关该问题的提示:

<块引用>

如果图像字段总是返回图像 ID 而不是字段设置中设置的另一个值,则这是数据库中 field_key 丢失或不正确的征兆

我的旧存储值全都错误,我不得不将它们更新为 field_60665667aa3d3,URL 返回又开始工作了。

database schema