2012-09-10 26 views
7

मैं थोड़ी देर के लिए वर्डप्रेस प्लगइन्स विकसित कर रहा हूं और मुझे हमेशा अपने सभी प्लगइन Jquery संघर्ष मुद्दों के साथ निम्नलिखित समस्याएं मिलती हैं।वर्डप्रेस प्लगइन्स पर jquery विवादों से बचने के लिए बुलेट प्रूफ तरीका

मैंने इनसे बचने के लिए कई अलग-अलग तरीकों का प्रयास किया है, लेकिन मैं हमेशा उपयोगकर्ताओं से मुझसे संपर्क करता हूं कि जब उन्होंने मेरे प्लगइन से एक स्थापित किया है तो उसने एक और प्लगइन को अहिह काम करने से रोक दिया है।

मैं वास्तव में यह हल करना चाहता हूं क्योंकि मैं समझता हूं कि यह लोगों के लिए कितना निराशाजनक हो सकता है।

मैं हमेशा सेट करता हूं और विकल्प या वर्डप्रेस jquery शामिल करता हूं, नीचे केवल एक उदाहरण कोड नहीं है।

add_action('init', array($this, 'include_jquery')); 

function include_jquery(){ 

        wp_deregister_script('jquery'); 
        wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"), false, '1.7.1'); 
        wp_enqueue_script('jquery'); 

      } 

ठीक है तो इस के साथ मुद्दों के बाद मैं अब हाँ टॉगल करने के लिए प्लगइन व्यवस्थापक में एक विकल्प का चयन करें या कोई jQuery शामिल है या नहीं करने के लिए मुझे पता है यह स्वचालित रूप से स्थापित किया गया है लेकिन कुछ उपयोगकर्ताओं को इस को दूर है, यह कुछ लोगों के लिए काम करता है लेकिन सब नहीं।

यदि आप वर्डप्रेस jquery शामिल करते हैं तो मुझे पता है कि आपको निम्नलिखित के साथ अपना jquery चलाने के लिए है।

jQuery(document).ready(function ($) { 

डॉलर के बजाय jQuery पर हस्ताक्षर $

मैं समझता हूँ और jQuery कोई विवाद का इस्तेमाल किया है और कोशिश की और परीक्षण किया कुछ सब बंद नहीं तो इन http://api.jquery.com/jQuery.noConflict/

$.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 

यह अन्य लोगों के साथ के रूप में कुछ उपयोगकर्ताओं के लिए काम करता है लेकिन कुछ उपयोगकर्ताओं के साथ अभी भी उत्पन्न होने वाले संघर्ष वाले सभी उपयोगकर्ता नहीं।

मुझे उम्मीद है कि इस पोस्ट से हम में से कुछ वर्डप्रेस प्लगइन डेवलपर संघर्ष समस्याओं के बिना हमारे प्लगइन के भीतर वर्डप्रेस और jquery का उपयोग करने के लिए बुलेट प्रूफ तरीके से बाहर निकलने और पोस्ट करने में मदद कर सकते हैं।

धन्यवाद

उत्तर

7

क्या यह बंद होने के साथ काम नहीं करता है?

(function($){ 
    // your plugin code 
})(jQuery); 
+1

यह निश्चित रूप से काम करता है, मुझे इस सवाल में हलचल नहीं मिलती है? एक खिड़की जोड़ें और स्वयं invoking समारोह के तर्क के रूप में अपरिभाषित, और जाने के लिए आपका अच्छा! – jOpacic

1

कोडेक्स के इन भागों पढ़ें:

आप init के बजाय wp_enqueue_scripts हुक का उपयोग करना चाहिए।

और आपको $.noConflict(); के बजाय jQuery.noConflict(); का उपयोग करना चाहिए।

+0

इन पर ध्यान देने के लिए उत्तर देने के लिए बहुत धन्यवाद और वापस रिपोर्ट करें – user1503606