Mam działający fragment języka JavaScript, który zawiera literał obiektu. Ale muszę go zlokalizować i zastanawiam się, jak go przepisać, aby uzyskać wp_localize_script () w celu uzyskania dostępu i wypisania poprawnego formatu.
Wersja niezlokalizowana (niedynamiczna) wygląda następująco:
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
Teraz, aby mieć te wartości generowane przez php (na podstawie niektórych ustawień wp_set), chcę użyć wp_localize_script, więc mogę wziąć to stąd:
var layoyt_config = my_localized_data.layoyt_config;
Aby wprowadzić te dane do tej właściwości obiektu „pomyślałem”, że mogę to zrobić, ale oczywiście nie:
$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);
Ponieważ spowoduje to błąd analizy PHP Próbowałem przepisać składnię JSON na tablicę, ponieważ wp_localize_script przekonwertuje to z powrotem na notację obiektową, ale to również nie działa dla mnie:
$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);
I chociaż działa to płynnie przez parser php, nie otrzymuję oczekiwanego wyniku w źródle strony, ponieważ moja_lokalizowana_data.layout_config staje się ciągiem „Array”, oto dane wyjściowe:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
Więc ... Jak mogę to zrobić (czy po prostu muszę zaakceptować, że muszę „spłaszczyć” mój obiekt w odrębne obiekty, takie jak:
lc_header = '1';
ls_ls_sb1 = '1';
etc...