Tengo una pieza de trabajo de javascript que contiene un objeto literal. Pero necesito localizarlo, y estoy tratando de descubrir cómo reescribirlo para poder obtener wp_localize_script () para acceder a él, y generar el formato correcto.
La versión no localizada (no dinámica) se ve así:
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
Ahora, para tener esos valores generados por php (basado en algunas configuraciones de wp) quiero usar wp_localize_script, para poder tomarlo desde allí:
var layoyt_config = my_localized_data.layoyt_config;
Y para obtener esos datos en esa propiedad de objeto 'pensé' que podría hacer esto, pero obviamente 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);
Como esto causará un error de análisis de PHP, he intentado reescribir la sintaxis de json a array, ya que wp_localize_script lo convertirá de nuevo en notación de objeto, pero esto tampoco funciona para mí:
$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);
Y aunque esto se ejecuta sin problemas a través del analizador de php, no obtengo el resultado esperado en el origen de mi página, ya que my_localized_data.layout_config se convierte en una "matriz" de cadenas, aquí está el resultado:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
Entonces ... ¿Cómo puedo hacer esto (o solo tengo que aceptar que debo 'aplanar' mi objeto en variables discretas como:
lc_header = '1';
ls_ls_sb1 = '1';
etc...