Кирилица и json decode в wp_localize_script - Wordpress не отображает кирилический текст
Имеется JS скрипт Яндекс.Карт, который собирает данные о метках через глобальную переменную (CDATA) и добавляет их на карту.
В данную переменную сначала приходит массив данных из полей админки. Далее обрабатывается вот таким кодом.
$data = cs_get_option('maps_homes_list');
wp_enqueue_style( 'map-styles-additional', get_template_directory_uri() . '/assets/dist/css/modules/maps/map-style.css');
wp_enqueue_script('home-list-map', YUYU_T_URI . '/assets/dist/js/map_home_list.js', array('jquery'), '', true);
global $wp_scripts;
if(empty($data)) {
wp_localize_script('home-list-map', 'placemarks', $localized_data);
}
else {
if(!is_array($data)) {
$data = json_decode(str_replace('var placemarks = ', '', substr($data, 0, -1)), true);
}
foreach($data as $key => $value) {
$localized_data[$key] = $value;
}
$wp_scripts->add_data('home-list-map', 'data', '');
wp_localize_script('home-list-map', 'placemarks', $localized_data);
}
а на выходе я имею вот такую дребедень:
/* <![CDATA[ */ var placemarks = {"2":{"home_name":"\u041f\u0438\u0440\u043e\u0433\u043e\u0432\u043e","home_coordinates":"55.989269242363996,37.66439398081199"},"3":{"home_name":"\u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e-\u0425\u043e\u0432\u0440\u0438\u043d\u043e","home_coordinates":"55.93759065152783,37.650518878295884"},"4":{"home_name":"\u041b\u0435\u0441\u043d\u044b\u0435 \u043f\u043e\u043b\u044f\u043d\u044b","home_coordinates":"55.59761043408846,37.449955855819695"},"5":{"home_name":"\u041c\u0435\u0434\u0432\u0435\u0436\u044c\u0438 \u041e\u0437\u0451\u0440\u0430","home_coordinates":"55.8593837767216,37.964252228836045"}}; /* ]]> */
Как заставить показывать вместо Юникода - кирилицу? и заставить не убирать слеши при вставке html, так как требуется содержание для балунов?
Однно замечание: даже при удалении json_decode почему-то никакой реакции не происходит в коде, хотя вроде должен использоваться.