我在样式属性中有一个短代码:
<div style="background-image: url("[my-shortcode id="1"]");"></div>
问题是短代码不会被渲染。
我发现在函数safecss_filter_attr()
中(在W-includes / kses.php上的行:1688),正则表达式过滤(
并返回一个空字符串。
由于安全限制,此特殊情况无法正常工作。
是否有其他方法可以在div属性中呈现短代码?
答案 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>