在WordPress短代码函数中,我有以下内容:
$args=shortcode_atts( array(
'setting1' => 'value1',
'setting2' => 'value2'
), $atts);
return '<div data-myData=''{' . json_encode( $args ) . '}'' ></div>';
我试图检索参数并返回HTML字符串。这个html应该看起来像:
<div data-myData='{ "setting1" : "value1" , "setting2" : "value2" }'></div>
然后一些JS从那里拾取它。然而,似乎无论我如何处理,WP一直在data-myData属性上将我的单引号转换为双引号,我最终得到了这个:
<div data-myData="{ "setting1" : "value1" , "setting2" : "value2" }"></div>
我是不是错过了什么简单的东西?谢谢!
在html上下文中插入JSON,因此需要使用特定于html的引用方法:
return '<div data-myData="' . htmlspecialchars(json_encode( $args )) . '"></div>';
^^^^^^^^^^^^^^^^