使用返回网址的 ACF 短代码值作为图像标记的 src



尝试创建一个图像,该图像可以通过其URL在整个站点的不同页面上多次重复使用。当前使用 ACF 在文件所在的页面上创建图像字段,从那里使用 scr=" 中的 ACF 短代码输出图像。

如果没有 img 标签,只需使用短代码[acf field="name" post_id="24"]它就会返回

http://www.example.com/wp-content/uploads/2020/07/iain-e1593698192670.jpg

点击此链接在新选项卡中提供图像,因此我认为 url 不是问题的根源。

当前设置是

<img src="[acf field="iain" post_id="24"]">

结果:烦人的损坏图像图标

编辑

使用海狸生成器

首先,您不能像使用双引号那样在双引号内嵌套双引号 - 您可以在短代码周围使用单引号,也可以将它们用于短代码中的属性。

如果您在模板中使用简码,则需要使用do_shortcodePHP 函数。否则,它只会在页面上显示实际的短代码文本。在您的情况下,它正在寻找带有 url[acf field="iain" post_id="24"]的图像,这就是您获得损坏图像的原因。

您需要将图像源更改为以下内容:

<img src="<?php echo do_shortcode('[acf field="iain" post_id="24"]'); ?>">

FluffyKitten 是对的,但我建议不要像你那样以这种方式使用简码。 甚至最好制作一个专用的短代码并使用它,如下所示:

// Shortcode dedicated to print the main image
add_shortcode("print_main_img","print_main_img_f");
function print_main_img_f($atts , $content = null, $tag = ''){
// Taking params
$structdata = shortcode_atts( array('id' => 24), $atts, $tag);

// Putting each in a variable
$imgid = esc_html__($structdata['id'], 24);
$img_url = get_field("iain",$imgid);

if(!empty($img_url)){
return '<img src="'.$img_url.'" />';
}
else{
return 'Invalid ID';
}
}

你可以这样使用它 [print_main_img] 默认情况下需要 ID 24 或类似 [print_main_img id=55],它将采用 id 55。

最新更新