我有一个包含对象文字的javascript工作部件。但是我需要对它进行本地化,我正在尝试找出如何重写它,以便让wp\\u localize\\u script()访问它,并输出正确的格式。
非本地化(非动态)版本如下所示:
var layoyt_config = {
\'header\' : 1
, \'footer\' : 1
, \'ls\' : {\'sb1\':1}
, \'rs\' : {\'sb1\':1,\'sb2\':1}
, \'align\' : \'center\'
};
现在,为了让这些值由php生成(基于一些wp\\U设置),我想使用wp\\U localize\\u脚本,因此我可以从这里开始:var layoyt_config = my_localized_data.layoyt_config;
为了将数据输入到对象属性中,我“认为”我可以这样做,但显然不行:$data = array(
\'layout_config\' => {
\'header\' : 1
, \'footer\' : 1
, \'ls\' : {\'sb1\': 1}
, \'rs\' : {\'sb1\': 1,\'sb2\': 1}
, \'align\' : \'center\'
}
);
wp_localize_script(\'my-script-handle\', \'my_localized_data\', $data);
由于这会导致PHP解析错误,我尝试将json重写为数组语法,因为wp\\u localize\\u脚本会将其转换回对象符号,但这对我也不起作用:$data = array(
\'layout_config\' => array(
\'header\' => 1
, \'footer\' => 1
, \'ls\' => array(\'sb1\'=>1)
, \'rs\' => array(\'sb1\'=>1,\'sb2\'=>1)
, \'align\' => \'center\'
)
);
wp_localize_script(\'my-script-handle\', \'my_localized_data\', $data);
虽然这在php解析器中运行顺利,但由于我的\\u本地化了\\u数据,我在页面源代码中没有得到预期的输出。layout_config变成字符串“Array”,输出如下:<script type=\'text/javascript\'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
所以。。我如何才能做到这一点(或者我必须接受必须将对象“展平”为离散变量,如:lc_header = \'1\';
ls_ls_sb1 = \'1\';
etc...