वर्डप्रेस लोड प्लगइन फ़ाइलें किस क्रम में हैं?


21

वर्डप्रेस में प्लग इन किस क्रम में हैं?

और एक विशेष प्लगइन के फ़ोल्डर के भीतर, लोड करने के लिए किस आदेश का पालन किया जाता है?


आप इस प्लगइन के साथ बहुत गहराई से डीबग कर सकते हैं: https://wordpress.org/plugins/whats-running/ यह वर्डप्रेस की सभी आवश्यक फाइलों को सूचीबद्ध करता है।
एसपीई विक्टर

जवाबों:


26

पहले सवाल का जवाब:

  1. में wp-settings.php, वर्डप्रेस पहले किसी भी आवश्यक प्लग-इन (वैकल्पिक mu-pluginsफ़ोल्डर में प्लगइन्स ) की जाँच करता है और उन्हें लोड करता है।

  2. फिर, यदि आप एक मल्टीसाइट इंस्टॉलेशन चला रहे हैं, तो यह उन प्लगइन्स की जाँच करता है जो नेटवर्क-एक्टिव हैं और जिन्हें लोड करता है।

  3. फिर यह डेटाबेस तालिका के 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।


इसलिए यदि मैं एक प्लगइन बनाता हूं, तो बाद में एक ऐड-ऑन प्लगइन्स जारी करें जो मूल प्लगइन चलाने के बाद चलना चाहिए, मैं उस आदेश को कैसे सुनिश्चित कर सकता हूं?
urok93

यह वास्तव में निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं। लेकिन आम तौर पर आप उनमें से प्रत्येक को add_action () फ़ंक्शन का उपयोग करके एक विशिष्ट हुक पर चलाने के लिए सेट करेंगे, जो आपको प्राथमिकता निर्धारित करने की अनुमति देता है। codex.wordpress.org/Function_Reference/add_action
SeventhSteel

@SeventhSteel लेकिन क्या होगा अगर एक प्लगइन दूसरे प्लगइन द्वारा बनाए गए हुक पर निर्भर करता है। यदि कोई प्लगइन apply_filters()हुक बनाने के लिए उपयोग करता है, लेकिन उपयोग करने वाले प्लगइन से पहले चलता है add_filter(), तो क्या यह अभी भी काम करेगा? तार्किक रूप से, ऐसा लगता है कि apply_filters()पहले से ही निकाल दिया जाएगा, इसलिए add_filter()दूसरे प्लगइन में कॉल कुछ भी नहीं करेंगे। क्या यह मायने रखता है कि केवल प्लग-इन हुक का उपयोग करते समय प्लगइन्स किस क्रम में लोड होते हैं?
त्रिकुट्र

क्या मायने रखता है जो समय के द्वारा लोड किया गया है apply_filters()add_filter()पहले चलना चाहिए apply_filters()। यदि add_filter()एक प्लगइन फ़ाइल में है और किसी अन्य फ़ंक्शन में नहीं है, तो यह उस plugins_loadedहुक पर चलेगा जो आम तौर पर आपकी आवश्यकता से पहले होने वाला है apply_filters()
सातवें

एक सामान्य परिदृश्य में कई प्लगइन्स होते हैं जो अपनी सामग्री को आगे बढ़ाते हैं the_content- उनकी उपस्थिति का क्रम कैसे निर्धारित किया जाता है?
डेन नेक्स

9

मुझे लगता है कि मेरे प्लगइन में एक 'लेट लोडिंग' एक्शन को शामिल करना उपयोगी है, जो सभी प्लगइन्स द्वारा अपना लोड पूरा करने के बाद चलता है:

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);
}

बिट कन्टूब्लेटेड (मुझे पता है), लेकिन यह सुनिश्चित करता है कि प्लगइन्स लोड ऑर्डर के बावजूद अन्य प्लग इन में हुक बनाए जाते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.