WordPress - 背景图像的内联样式短代码不会渲染

时间:2018-03-07 10:02:41

标签: wordpress shortcode

我在样式属性中有一个短代码:

<div style="background-image: url("[my-shortcode id="1"]");"></div>

问题是短代码不会被渲染。

我发现在函数safecss_filter_attr()中(在W-includes / kses.php上的行:1688),正则表达式过滤(并返回一个空字符串。

由于安全限制,此特殊情况无法正常工作。

是否有其他方法可以在div属性中呈现短代码?

3 个答案:

答案 0 :(得分:0)

您是否尝试echo页面上的短代码输出以查看其返回的内容以确保其有效?

<?php echo do_shortcode('[my-shortcode id="1"]'); ?>

您也可以尝试将其保存在变量中。 nospan是必要的,因为WordPress默认在<span>内输出它:

<?php
  $shortcode_url = do_shortcode('[my-shortcode id="1" nospan="true"]');
?>
<div style="background-image: url(<?php echo $shortcode_url; ?>);"></div>

答案 1 :(得分:0)

你可以这样试试,

function my_shortcode_function() { 
     $i = '<p>Hello World!</p>';
    return $i;
} 
add_shortcode('my-shortcode', 'my_shortcode_function');


<div style="background-image:url('<?php echo do_shortcode('[my-shortcode]'); ?>');"></div>

答案 2 :(得分:0)

我需要将短代码放在帖子内容中(visual composer html元素)。

所以我需要用整个HTML代码渲染它:

<div style="background-image: url("[acf field='my_field' post_id='123']");"></div>