객체 리터럴을 포함하는 작동하는 자바 스크립트가 있습니다. 그러나 현지화해야하며 wp_localize_script ()가 액세스하여 올바른 형식을 출력 할 수 있도록 다시 작성하는 방법을 알아 내려고 노력하고 있습니다.
지역화되지 않은 (비 동적) 버전은 다음과 같습니다.
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
이제 php (일부 wp_settings 기반)에 의해 생성 된 값을 갖기 위해 wp_localize_script를 사용하고 싶습니다.
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 구문 분석 오류가 발생하므로 wp_localize_script가 객체 표기법으로 다시 변환하므로 json을 배열 구문으로 다시 작성하려고 시도했지만 이것도 작동하지 않습니다.
$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 파서를 통해 원활하게 실행되지만 my_localized_data.layout_config가 문자열 "Array"가되면 내 페이지 소스에서 예상 출력을 얻지 못합니다. 출력은 다음과 같습니다.
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
그래서 .. 어떻게해야합니까 (또는 그냥 객체를 이산 변수로 '평평하게'해야한다는 것을 받아 들여야합니까?
lc_header = '1';
ls_ls_sb1 = '1';
etc...