Wordpress ACF插件-wp_get_attachment_image函数不适用于ACF选项页面吗?

时间:2018-08-09 04:02:47

标签: wordpress advanced-custom-fields

我正在尝试使用wp_get_attachment_image WordPress函数在前端显示图像资产,但是它似乎不适用于ACF上的选项页面。

这是我的代码:

<?php

    $image = get_field('logo', 'option');
    $size = 'full'; // (thumbnail, medium, large, full or custom size)

    if( $image ) {

        echo wp_get_attachment_image( $image, $size );

    }

?>

在后端看起来像这样:

enter image description here

您在上面看到的图片是ACF中的一个选项页,当我尝试将该图片查询到wp_get_attachment_image函数中时,它不起作用。但是,当我运行以下代码时:

<img data-src="<?php the_field('logo', 'option'); ?>" alt="footer logo" class="lazyload" />

在图像标签中,效果很好。

我复制并粘贴了here(基本显示ID)位于ACF文档中的内容,但未在前端显示图像。

我想念任何人吗?

非常感谢!

4 个答案:

答案 0 :(得分:1)

您使用的返回值类型是什么?图片阵列,图片网址,图片ID

您需要获得一个如下字段: get_field('logo');为什么要添加选项?

更多信息在这里: https://www.advancedcustomfields.com/resources/image/

答案 1 :(得分:1)

字段中的返回值应为图片ID。参见屏幕截图

enter image description here

答案 2 :(得分:1)

wp_get_attachment_image要求第一个参数是图像ID。在您的情况下,如果您使用代码<img data-src="<?php the_field('logo', 'option'); ?>" alt="footer logo" class="lazyload" />查看图像,则get_field('logo', 'option')返回图像的url。不是使用wp_get_attachment_image所需要的ID 。

您需要做的是将徽标字段的“返回值”更改为“图像ID”。 然后,您可能必须重新上传图像。

并将此代码<img data-src="<?php the_field('logo', 'option'); ?>" alt="footer logo" class="lazyload" />更改为<img data-src="<?php echo wp_get_attachment_url(get_field('logo', 'option')); ?>" alt="footer logo" class="lazyload" />

答案 3 :(得分:1)

ACf插件根据您设置的返回类型返回值。

如果您将返回类型发送为Image数组,则:

  

$ image [0]->完整或$ image [0] [$ full]或$ image [$ full],具体取决于上传的图像数量。

如果您将返回类型设置为图片网址:

<img src="<?php $image; ?>">  would do the work.

如果您将返回类型设置为图片ID:

  

$ img2 = wp_get_attachment_image_src(get_post_thumbnail_id($ image),   $ full); echo $ img2 [0];

我想以上方法肯定会帮助您。

谢谢