WordPress单引号JSON问题

时间:2014-03-23 03:22:15

标签: php arrays json wordpress

在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>

我有什么简单的遗失吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您正在将JSON插入到html上下文中,因此您需要使用特定于HTML的引用方法:

return '<div data-myData="' . htmlspecialchars(json_encode( $args )) . '"></div>';
                              ^^^^^^^^^^^^^^^^