【问题标题】:WordPress - Inline style shortcode for background-image doesn't renderWordPress - 背景图像的内联样式短代码不呈现
【发布时间】:2018-08-15 09:15:42
【问题描述】:

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

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

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

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

由于安全限制,这种特殊情况不起作用。

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

【问题讨论】:

  • 类似:&lt;div style="background-image: url(&lt;?php echo do_shortcode('[my-shortcode id="1"]'); ?&gt;);"&gt;&lt;/div&gt;
  • 也没有用:(

标签: wordpress shortcode


【解决方案1】:

您是否尝试在页面上echo 输出您的短代码以查看它返回的内容以确保其正常工作?

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

您也可以尝试将其保存在变量中。 nospan 是必要的,因为默认情况下 WordPress 在 &lt;span&gt; 内输出它:

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

【讨论】:

    【解决方案2】:

    你可以这样试试,

    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>
    

    【讨论】:

      【解决方案3】:

      我需要将简码放在帖子内容中(可视化作曲家 html 元素)。

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

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

      【讨论】:

        猜你喜欢
        • 2015-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-20
        • 2017-10-21
        • 2017-10-02
        • 2023-03-12
        • 2012-10-20
        相关资源
        最近更新 更多