मेरा प्रश्न है ... इस wp-load.php
फ़ाइल में वास्तव में क्या है जो इसे कोड द्वारा आवश्यक होने की आवश्यकता है?
सभी कोर वर्डप्रेस कार्यक्षमता। इसमें थीम फाइलें, सक्रिय प्लगइन्स की सभी फाइलें इत्यादि शामिल हैं। लेकिन इस तरह से वर्डप्रेस लोड करना अनुरोधित यूआरएल को पार्स नहीं करता है और वर्डप्रेस क्वेरी नहीं चलाता है (WP ऑब्जेक्ट को शुरू करके, और न ही WP_Query ऑब्जेक्ट्स) ।
यह को देख कर, सब मैं समझता हूँ कि यह साइट के लिए महत्वपूर्ण कोर वर्डप्रेस फ़ाइलों को लोड करता है सही ढंग से चलाना है (functions.php
, wp-settings.php
, wp-config.php
आदि ...)
हाँ, आप ' सही ढंग से समझा है।
क्या तथ्य यह नहीं है कि प्लगइन पहले से चल रहा है wp-load.php लोड हो गया है?
तो प्लगइन कोड से वर्डप्रेस (उदाहरण के लिए आदेश में एक व्यवस्थापक पृष्ठ प्रदर्शित करने के लिए, या यह शुरू में लोड प्लगइन फ़ाइल से शामिल किया गया था) लागू किया गया था - तो हाँ, यह मतलब है कि wp-load.php
पहले से ही लोड किया गया है।
कभी कभी, हालांकि, एकल फ़ाइलें (उदाहरण http://example.com/wp-content/plugins/my-plugin/sample.php
के लिए), के बजाय कुछ वर्डप्रेस संचालित पेज (उदाहरण के http://example.com/?my_plugin_action=sample
या http://example.com/wp-admin/admin-ajax.php
के लिए) के लिए करने के लिए प्लग-इन प्रत्यक्ष अनुरोध।
कैसे पहले यूआरएल my-plugin
प्लगइन निर्देशिका में एक विशिष्ट फ़ाइल का संदर्भ और दूसरा एक के साथ एक विशिष्ट क्वेरी तर्क जोड़ा साइट के मुख पृष्ठ पर चला जाता है, या तीसरा उदाहरण है, जहां संदर्भित फ़ाइल में admin-ajax.php
है देखें wp-admin
निर्देशिका - यह एक विशेष फ़ाइल है, जो प्लगइन के लिए AJAX अनुरोध करने में आसान बनाता है (यह फ़ाइल वर्डप्रेस कोर भी लोड करती है और कुछ एक्शन हुक निकालती है)।
पहले संदर्भ के मामले में, यदि प्लगइन कुछ वर्डप्रेस कार्यक्षमता (डेटाबेस को संदर्भित करने के लिए, पदों में हेरफेर करने के लिए) का उपयोग करना चाहता है, तो इसे wp-load.php
सहित वर्डप्रेस कोर फ़ाइलों को लोड करने की आवश्यकता है।
यह भी संसाधनों की एक पूरी बर्बादी है क्योंकि यह रूप में अच्छी तरह या यहां तक कि अन्य फ़ाइलों शामिल हो सकते हैं तो कई फ़ाइलें शामिल है और यह आवश्यक फ़ाइलों की एक अंतहीन लूप की तरह है, एक और भीतर प्रत्येक, जो दो बार लोड किया जा रहा है .. (अधिक करता है, तो अन्य प्लग-इन भी विधि के इस प्रकार)
नोट require_once(...
में _once
भाग का उपयोग - यह पीएचपी बताता है कि यह पहले से ही शामिल नहीं किया गया है फ़ाइल केवल शामिल करने के लिए। इसलिए कोई विवाद नहीं होगा, और PHP द्वारा बहुत अधिक स्मृति का उपयोग नहीं किया जाएगा। यद्यपि - यदि आप किसी ऐसे संदर्भ में हैं जहां वर्डप्रेस पहले ही शुरू हो चुका है, तो आपको require
फ़ंक्शन को कॉल नहीं करना चाहिए।
तो मूल रूप से प्लगइन लेखक प्लगइन फ़ाइल में कुछ अनुरोध किए जाने की अपेक्षा करता है जिसमें आपको यह कोड मिला। चूंकि लेखक इस फ़ाइल में वर्डप्रेस कार्यक्षमता का उपयोग करना चाहता है, इसलिए वह मूल कार्यों को लोड करने के लिए wp-load.php
फ़ाइल को आमंत्रित करता है।
मुझे लगता है कि यह सर्वर पर लोड को कम करने के लिए किया जाता है, हालांकि plugins_loaded
एक्शन हुक पर चलने वाले कुछ हुक और एक कस्टम $_GET
पैरामीटर होम यूआरएल में जोड़ा गया है, तो परिणाम अभी भी सुंदर होना चाहिए बंद करे।
मैं व्यक्तिगत रूप से दूसरा विकल्प पसंद करते हैं, लेकिन जैसे मैंने कहा, सहित wp-load.php
कुछ जटिल सामान (यूआरएल पार्स करने और डेटाबेस क्वेरी/यां) चलने से वर्डप्रेस कर पाएगा।
यदि अभी भी कुछ है, तो आप इसके बारे में काफी कुछ नहीं समझते हैं - यहां एक टिप्पणी पोस्ट करें और मैं आगे की व्याख्या करने की कोशिश करूंगा।
ग्रेट, विस्तृत उत्तर! आपको बहुत बहुत धन्यवाद! :) – Asaf