【问题标题】:ACF IMG returns ID not URL when in archive.phpACF IMG 在 archive.php 中返回 ID 而不是 URL
【发布时间】:2015-03-29 22:38:06
【问题描述】:

我有一个 WordPress 网站,并且有一个简单的 div,其背景图像位于 footer.php,从 ACF 选项字段调用,如下所示:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果图像字段总是返回图像 ID,而不是字段设置中设置的另一个值,那么这是数据库中缺少或不正确的 field_key 的症状

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

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我没有找到插件的修复方法,但我通过条件语句来检查页面是否为标签存档,然后通过返回的 ID 检索附件 URL,从而解决了这种情况。

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

      【讨论】:

      • 好主意。谢谢!
      猜你喜欢
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多