वर्डप्रेस में प्लग इन किस क्रम में हैं?
और एक विशेष प्लगइन के फ़ोल्डर के भीतर, लोड करने के लिए किस आदेश का पालन किया जाता है?
वर्डप्रेस में प्लग इन किस क्रम में हैं?
और एक विशेष प्लगइन के फ़ोल्डर के भीतर, लोड करने के लिए किस आदेश का पालन किया जाता है?
जवाबों:
में wp-settings.php
, वर्डप्रेस पहले किसी भी आवश्यक प्लग-इन (वैकल्पिक mu-plugins
फ़ोल्डर में प्लगइन्स ) की जाँच करता है और उन्हें लोड करता है।
फिर, यदि आप एक मल्टीसाइट इंस्टॉलेशन चला रहे हैं, तो यह उन प्लगइन्स की जाँच करता है जो नेटवर्क-एक्टिव हैं और जिन्हें लोड करता है।
फिर यह डेटाबेस तालिका के active_plugins
प्रवेश को देखते हुए अन्य सक्रिय प्लगइन्स की जांच करता है wp_options
, और उन के माध्यम से लूप करता है। प्लगइन्स को वर्णानुक्रम में सूचीबद्ध किया जाएगा।
यहाँ आदेश वर्डप्रेस बहुत अधिक सब कुछ लोड करता है: http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
बात यह है, यह आमतौर पर मायने नहीं रखता है कि प्रत्येक व्यक्तिगत प्लगइन किस क्रम में लोड किया गया है, क्योंकि ठीक से लिखे गए प्लगइन्स वर्डप्रेस हुक का उपयोग करेंगे, जो आपको बाद में वर्डप्रेस स्टार्टअप में विशिष्ट बिंदुओं में कार्यक्षमता को प्लग करने देता है। (उचित रूप से लिखे गए प्लगइन्स भी उनके कार्यों और कक्षाओं को उपसर्ग करेंगे ताकि कोई विरोध न हो।)
प्लगइन एपीआई पर अधिक जानकारी: http://codex.wordpress.org/Plugin_API/
पूरी तरह से प्लगइन पर निर्भर करता है। वर्डप्रेस केवल एक फ़ाइल को प्लगइन में लोड करता है, एक जिसे आमतौर पर नाम दिया गया है the-plugin-name.php
और शीर्ष पर शीर्षक, विवरण, लेखक आदि शामिल हैं। यह अपनी फ़ाइलों के बाकी लोड करने के लिए प्लगइन पर निर्भर है का उपयोग करते हुए require_once
और wp_enqueue_script
और whatnot।
apply_filters()
हुक बनाने के लिए उपयोग करता है, लेकिन उपयोग करने वाले प्लगइन से पहले चलता है add_filter()
, तो क्या यह अभी भी काम करेगा? तार्किक रूप से, ऐसा लगता है कि apply_filters()
पहले से ही निकाल दिया जाएगा, इसलिए add_filter()
दूसरे प्लगइन में कॉल कुछ भी नहीं करेंगे। क्या यह मायने रखता है कि केवल प्लग-इन हुक का उपयोग करते समय प्लगइन्स किस क्रम में लोड होते हैं?
apply_filters()
। add_filter()
पहले चलना चाहिए apply_filters()
। यदि add_filter()
एक प्लगइन फ़ाइल में है और किसी अन्य फ़ंक्शन में नहीं है, तो यह उस plugins_loaded
हुक पर चलेगा जो आम तौर पर आपकी आवश्यकता से पहले होने वाला है apply_filters()
।
the_content
- उनकी उपस्थिति का क्रम कैसे निर्धारित किया जाता है?
मुझे लगता है कि मेरे प्लगइन में एक 'लेट लोडिंग' एक्शन को शामिल करना उपयोगी है, जो सभी प्लगइन्स द्वारा अपना लोड पूरा करने के बाद चलता है:
add_action('plugins_loaded', 'my_late_loader');
फ़ंक्शन my_late_loader तब अन्य सभी प्लगइन्स के बाद शुरू किया जाता है जो मुझे अपने स्वयं के फ़ंक्शन my_other_function में अन्य प्लगइन्स द्वारा परिभाषित हुक का उपयोग करने की अनुमति देता है जो my_late_loader के भीतर आरंभ होता है
/**
* Late loading function for actions that must run after all plugins
* have loaded
*/
function my_late_loader(){
add_action( 'some_hook', 'my_other_function', 10, 1);
}
बिट कन्टूब्लेटेड (मुझे पता है), लेकिन यह सुनिश्चित करता है कि प्लगइन्स लोड ऑर्डर के बावजूद अन्य प्लग इन में हुक बनाए जाते हैं।