1

试图通过它的 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"]">

结果:恼人的破碎图像图标

编辑

使用海狸生成器

4

2 回答 2

2

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

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

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

<img src="<?php echo do_shortcode('[acf field="iain" post_id="24"]'); ?>">
于 2020-07-02T16:08:09.993 回答
0

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。

于 2020-07-02T17:14:22.693 回答