在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>
我有什么简单的遗失吗? 谢谢!
答案 0 :(得分:1)
您正在将JSON插入到html上下文中,因此您需要使用特定于HTML的引用方法:
return '<div data-myData="' . htmlspecialchars(json_encode( $args )) . '"></div>';
^^^^^^^^^^^^^^^^