Tôi đã có một đoạn javascript hoạt động có chứa một đối tượng theo nghĩa đen. Nhưng tôi cần bản địa hóa nó và tôi đang cố gắng tìm ra cách viết lại nó để tôi có thể lấy wp_localize_script () để tích lũy nó và xuất định dạng chính xác.
Phiên bản không được bản địa hóa (không động) trông như thế này:
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
Bây giờ, để có các giá trị được tạo bởi php (dựa trên một số wp_sinstall) tôi muốn sử dụng wp_localize_script, vì vậy tôi có thể lấy nó từ đó:
var layoyt_config = my_localized_data.layoyt_config;
Và để có được dữ liệu đó vào tài sản đối tượng đó, tôi nghĩ rằng tôi có thể làm điều này, nhưng rõ ràng là không:
$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);
Vì điều này sẽ gây ra lỗi phân tích cú pháp PHP, tôi đã cố gắng viết lại cú pháp json thành mảng, vì wp_localize_script sẽ chuyển đổi lại thành ký hiệu đối tượng, nhưng điều này cũng không hoạt động với tôi:
$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);
Và trong khi điều này chạy trơn tru qua trình phân tích cú pháp php, tôi không nhận được đầu ra mong đợi trong nguồn trang của mình, vì my_localized_data.layout_config trở thành Chuỗi "Mảng", đây là đầu ra:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
Vì vậy, .. Làm thế nào tôi có thể làm điều này (hoặc tôi phải chấp nhận rằng tôi phải 'san phẳng' đối tượng của mình thành các lọ rời rạc như:
lc_header = '1';
ls_ls_sb1 = '1';
etc...