इसलिए मैं इस मुद्दे पर भागना जारी रखता हूं और मैं इस समस्या को हल करने का सबसे अच्छा और सरल उपाय ढूंढ रहा हूं।
मैं कई अलग-अलग परियोजनाओं में कस्टम पोस्ट प्रकारों का उपयोग करने के लिए आया हूं और इन्हें कस्टम मेटाबॉक्सेस के साथ बढ़ाया है जो कि मैंने तब कस्टम स्क्रिप्ट जैसे jQuery इवेंट कैलेंडर चयनकर्ताओं को जोड़कर आगे बढ़ाया है ... यह सब एक प्रमुख मुद्दे को छोड़कर महान काम करता है। ... मैं नहीं चाहता कि ये कस्टम jQuery स्क्रिप्ट एडमिन के हर पेज पर लोड हो।
मैं अनिवार्य रूप से सिर्फ एक रास्ता ढूंढ रहा हूं, जब मैं एक विशेष पोस्ट प्रकार के लिए "पोस्ट संपादित करें" पृष्ठ पर इन कस्टम jquery फ़ील्ड को लोड कर रहा हूं।
यहां सबसे अच्छा समाधान क्या है?
अद्यतन १
सबसे पहले, आपका बहुत-बहुत धन्यवाद।
मैं वास्तव में हैरान हूं कि प्लगइन डेवलपर्स इस तरह की चीजों के बारे में सुनिश्चित नहीं करते हैं क्योंकि मुझे पता चल रहा है कि यह एक प्रमुख कारण है कि विभिन्न प्लगइन्स के साथ समस्याएं मौजूद हैं।
मैं इसके साथ कुछ और मुद्दे रख रहा हूं। उदाहरण के लिए...
मैंने इस तरह के बयान को कॉल करने के लिए स्क्रिप्ट को संशोधित किया है:
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events')
जैसा कि आप देख सकते हैं कि मैं चीजों को सेट करने की कोशिश कर रहा हूं ताकि मेरी स्क्रिप्ट को केवल तभी कॉल किया जा सके जब मैं "इवेंट्स" के पोस्ट प्रकार के भीतर एक पोस्ट जोड़ या संपादित कर रहा हूं।
मैं स्क्रिप्ट को किसी अन्य पृष्ठ पर लोड नहीं करना चाहता और यह भी नहीं चाहता कि यह "ईवेंट" के पोस्ट प्रकार के भीतर पेज की सूची पर चले, इसलिए मुझे लगता है कि यदि कथन सही है।
हालाँकि समस्या यह है कि स्क्रिप्ट तभी लोड हो जाती है जब मैं इस पोस्ट प्रकार के भीतर एक नया पोस्ट बनाता हूं, लेकिन जब मैं किसी मौजूदा पोस्ट को संपादित कर रहा हूं तो यह काम नहीं करता है।
क्या आप इसका परीक्षण कर सकते हैं और शायद मुझे बताएं कि मैं क्या गलत कर सकता हूं?
यहां सटीक कोड है जो मैं उपयोग कर रहा हूं ... शायद ऐसा करने का एक बेहतर या सरल तरीका है?
<?php
// INCLUDE METABOX CUSTOM JQUERY DATEPICKER 2
add_action('admin_init','load_admin_datapicker_script');
function load_admin_datapicker_script() {
global $pagenow, $typenow;
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events') {
$ss_url = get_bloginfo('stylesheet_directory');
wp_enqueue_script('jquery');
wp_enqueue_script('custom_js_jquery_ui',"{$ss_url}/admin-metabox/js/jquery-ui-1.7.1.custom.min.js",array('jquery'));
wp_enqueue_script('custom_js_daterangepicker',"{$ss_url}/admin-metabox/js/daterangepicker.jQuery.js",array('jquery'));
wp_enqueue_script('custom_js_custom',"{$ss_url}/admin-metabox/js/custom.js",array('jquery'),NULL,TRUE);
wp_enqueue_style('custom_css_daterangepicker',"{$ss_url}/admin-metabox/css/ui.daterangepicker.css");
wp_enqueue_style('custom_css_jquery_ui',"{$ss_url}/admin-metabox/css/redmond/jquery-ui-1.7.1.custom.css");
}
}
इसके अलावा ... अगर मैं तीन पोस्ट प्रकार जोड़ना चाहता था और प्रत्येक पोस्ट प्रकार के लिए अलग-अलग JS स्क्रिप्ट लोड करना चाहता था तो क्या मैं तीन अलग-अलग समय के ऊपर कोड की नकल करूंगा या यह ऐसा करने का एक अच्छा तरीका नहीं है? उदाहरण के लिए ... क्या सिर्फ कॉल करना बेहतर होगा: वैश्विक $ पेंजेनो, $ टाइपेनो; जब मैं इसे एक से अधिक बार डुप्लिकेट करता हूं, तो मेरे फ़ंक्शंस के शीर्ष पर या इससे कोई फ़र्क पड़ता है या चीजों को उलझा देता है?
उसी से संबंधित एक अलग समस्या पर ... मैं उदाहरण के लिए "गुरुत्वाकर्षण रूपों" प्लगइन का उपयोग कर रहा हूं, लेकिन मैंने उनकी स्क्रिप्ट को व्यवस्थापक के हर पृष्ठ पर चलाया है जो अन्य प्लगइन्स के साथ समस्या पैदा कर रहा है। मैं अपनी स्क्रिप्ट को संशोधित करने के बारे में कैसे जाऊँगा यह सुनिश्चित करने के लिए लिपियों को केवल लोड किया जाएगा जब मुझे उनकी आवश्यकता होगी।
अद्यतन २
मैंने अपने फ़ंक्शंस को संशोधित किया है। माइक (नीचे) द्वारा दिए गए कोड के साथ फ़ाइल। हालांकि ऐसा लगता है कि जब आप एक नया पोस्ट या पेज बनाते हैं तो लागू जावास्क्रिप्ट को शामिल किया जाता है। इसका मतलब यह है कि जब आप एक नया पोस्ट या पेज बनाने का प्रयास करते हैं या तो एक नया डिफ़ॉल्ट वर्डप्रेस पोस्ट / पेज बनाते हैं या जब आप अपने कस्टम पोस्ट प्रकारों में से एक के आधार पर एक नया पोस्ट / पेज बनाते हैं। माइक आईएस द्वारा प्रस्तावित कोड अन्य सभी व्यवस्थापक पृष्ठों पर काम कर रहा है और यह तब काम करता है जब आप एक मौजूदा पोस्ट / पेज या कस्टम पोस्ट प्रकार "EDIT" करते हैं। इस कार्य को सही बनाने के लिए कोई सुझाव दिया गया संशोधन?
यहाँ मेरा वर्तमान कोड है:
<?php
add_action('admin_init','load_admin_datapicker_script');
function load_admin_datapicker_script() {
global $pagenow, $typenow;
if (empty($typenow) && !empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events') {
$ss_url = get_bloginfo('stylesheet_directory');
wp_enqueue_script('jquery');
wp_enqueue_script('custom_js_jquery_ui',"{$ss_url}/admin-metabox/js/jquery-ui-1.7.1.custom.min.js",array('jquery'));
wp_enqueue_script('custom_js_daterangepicker',"{$ss_url}/admin-metabox/js/daterangepicker.jQuery.js",array('jquery'));
wp_enqueue_script('custom_js_custom',"{$ss_url}/admin-metabox/js/custom.js",array('jquery'),NULL,TRUE);
wp_enqueue_style('custom_css_daterangepicker',"{$ss_url}/admin-metabox/css/ui.daterangepicker.css");
wp_enqueue_style('custom_css_jquery_ui',"{$ss_url}/admin-metabox/css/redmond/jquery-ui-1.7.1.custom.css");
}
}
?>