我正在尝试使用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 );
}
?>
在后端看起来像这样:
您在上面看到的图片是ACF中的一个选项页,当我尝试将该图片查询到wp_get_attachment_image
函数中时,它不起作用。但是,当我运行以下代码时:
<img data-src="<?php the_field('logo', 'option'); ?>" alt="footer logo" class="lazyload" />
在图像标签中,效果很好。
我复制并粘贴了here(基本显示ID)位于ACF文档中的内容,但未在前端显示图像。
我想念任何人吗?
非常感谢!
答案 0 :(得分:1)
您使用的返回值类型是什么?图片阵列,图片网址,图片ID
您需要获得一个如下字段: get_field('logo');为什么要添加选项?
更多信息在这里: https://www.advancedcustomfields.com/resources/image/
答案 1 :(得分:1)
答案 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];
我想以上方法肯定会帮助您。
谢谢