मुझे जावास्क्रिप्ट का एक काम करने वाला टुकड़ा मिला है जिसमें एक वस्तु शाब्दिक है। लेकिन मुझे इसे स्थानीय बनाने की आवश्यकता है, और मैं यह पता लगाने के लिए ytrying कर रहा हूं कि इसे कैसे फिर से लिखना है ताकि मैं इसे प्राप्त करने के लिए wp_localize_script () प्राप्त कर सकूं और सही प्रारूप का उत्पादन कर सकूं।
गैर-स्थानीयकृत (गैर गतिशील) संस्करण इस तरह दिखता है:
var layoyt_config = {
'header' : 1
, 'footer' : 1
, 'ls' : {'sb1':1}
, 'rs' : {'sb1':1,'sb2':1}
, 'align' : 'center'
};
अब, उन मूल्यों को php (कुछ wp_settings के आधार पर) से उत्पन्न करने के लिए मैं wp_localize_script का उपयोग करना चाहता हूं, इसलिए मैं इसे वहां से ले जा सकता हूं:
var layoyt_config = my_localized_data.layoyt_config;
और उस डेटा को उस ऑब्जेक्ट प्रॉपर्टी में प्राप्त करने के लिए मैंने सोचा था कि मैं ऐसा कर सकता हूं, लेकिन स्पष्ट रूप से नहीं:
$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);
चूंकि यह PHP पार्स त्रुटि का कारण बनेगा, इसलिए मैंने सरणी सिंटैक्स में जसन को फिर से लिखने की कोशिश की है, क्योंकि wp_localize_script उस बैक को ऑब्जेक्ट नोटेशन में बदल देगा, लेकिन यह भी मेरे लिए काम नहीं करता है:
$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);
और जब यह सुचारू रूप से php parser चलाता है, तो मुझे मेरे पृष्ठ स्रोत में अपेक्षित आउटपुट नहीं मिलता है, क्योंकि my_localized_data.layout_config एक स्ट्रिंग "एरे" बन जाता है, यहाँ आउटपुट है:
<script type='text/javascript'>
/* <![CDATA[ */
var wpkit_localized_data = {
layout_config: "Array"
};
/* ]]> */
</script>
तो .. मैं यह कैसे कर सकता हूं (या मुझे बस यह स्वीकार करना होगा कि मुझे अपनी वस्तु को 'असतत चर' में 'समतल' करना होगा:
lc_header = '1';
ls_ls_sb1 = '1';
etc...