Ho un pezzo funzionante di javascript che contiene un oggetto letterale. Ma devo localizzarlo e sto cercando di capire come riscriverlo in modo da poter ottenere wp_localize_script () per accedervi e produrre il formato corretto.
La versione non localizzata (non dinamica) è simile alla seguente:
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
Ora, per avere quei valori generati da php (basato su alcune impostazioni wp) voglio usare wp_localize_script, quindi posso prenderlo da lì:
var layoyt_config = my_localized_data.layoyt_config;
E per ottenere quei dati nella proprietà dell'oggetto ho pensato di poterlo fare, ma ovviamente no:
$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);
Poiché ciò causerà un errore di analisi PHP, ho provato a riscrivere il json nella sintassi dell'array, poiché wp_localize_script lo convertirà in notazione oggetto, ma anche questo non funziona per me:
$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);
E mentre questo funziona senza problemi attraverso il parser php, non ottengo l'output previsto nella mia sorgente di pagina, poiché my_localized_data.layout_config diventa una stringa "Array", ecco l'output:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
Quindi .. Come posso fare questo (o devo solo accettare che devo 'appiattire' il mio oggetto in discreti vars come:
lc_header = '1';
ls_ls_sb1 = '1';
etc...