У мене є робочий фрагмент javascript, який містить літеральний об'єкт. Але мені потрібно локалізувати це, і я намагаюся зрозуміти, як його переписати, щоб я міг отримати 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, я намагався переписати синтаксис масиву json, оскільки wp_localize_script перетворить це назад у нотацію об'єкта, але це також не працює для мене:
$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 стає рядковим "масивом", ось вихід:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
Отже .. Як я можу це зробити (чи я просто повинен прийняти, що я повинен «сплюстити» мій об’єкт на дискретні зміни типу:
lc_header = '1';
ls_ls_sb1 = '1';
etc...