आपके द्वारा सामना किए गए सभी दस्तावेज़ आपके प्लग इन के माध्यम से प्लग करने योग्य फ़ंक्शन को ओवरराइड करने पर चर्चा करते हैं।
यदि आप इसके बजाय विषय विकास कर रहे हैं तो क्या होगा?
मेरे फंक्शन्स.php को एक और फाइल की आवश्यकता होती है get_user_by()
, जो फंक्शन को ओवरराइड करती है, जिसमें परिभाषित होती है pluggable.php
।
अगर मैं if( function_exists() )
कॉल को छोड़ देता हूं तो मुझे "रिडक्लेयर नहीं ..." त्रुटि मिल सकती है।
यदि मैं if( function exists() )
कॉल शामिल करता हूं , तो मुझे कोई त्रुटि नहीं मिलती है, लेकिन निश्चित रूप से मेरे फ़ंक्शन को अनदेखा किया जाता है, क्योंकि प्लग करने योग्य संस्करण मौजूद है।
वर्डप्रेस स्टार्टअप ऑर्डर पर डोमिनिक की भयानक पोस्ट के आधार पर , यह स्पष्ट है कि आपके विषय से पहले और बाद pluggable.php
में लोड किया गया है, ताकि त्रुटि की व्याख्या हो।functions.php
तो सवाल यह है कि आप एक विषय के भीतर से उस अच्छी प्लगेबल आर्किटेक्चर का लाभ कैसे उठा सकते हैं, जो कि प्लगइन्स लिखने का सहारा लिए बिना, जिसे फिर से बंडल किया जाना चाहिए या थीम के साथ स्थापित किया जाना चाहिए?
आगे के नोट्स : तो ऐसा प्रतीत होता है कि तर्क यह है कि थीम को वह करने की कोशिश नहीं करनी चाहिए जो प्लगइन्स करते हैं। लेकिन यह तर्क चार साल से अधिक पुराना है (4-अंकीय टीआरसी संख्या के अनुसार)। मैं कुछ भारी हिटरों से सुनना पसंद करूंगा चाहे यह दर्शन अभी भी लागू हो, आज के विषय विकास परिदृश्य के जटिल टोपोलॉजी को देखते हुए। मुझे विश्वास है कि हम तब से विकसित हुए हैं।
संदर्भ : मैं एक कस्टम-मेटाडेटा, व्यवस्थापक बैक-एंड का अनुकूलन, लॉगिन / प्रमाणीकरण प्रक्रिया, कार्यों के साथ एक ग्राहक के लिए एक-बंद सीएमएस समाधान विकसित कर रहा हूं। और निश्चित रूप से, वहाँ डिजाइन घटक है - कि जहां विषय हिस्सा आता है। तथ्य यह है, ये बस पुन: प्रयोज्य घटक नहीं हैं - वे कभी भी दूसरे ग्राहक पर लागू नहीं होंगे, उन्हें कभी जीपीएल के तहत नहीं रखा जाएगा और खट्टा नहीं किया जाएगा, और वे सबसे अधिक हैं निश्चित रूप से अन्य वर्डप्रेस तैनाती पर वितरित / स्थापित नहीं किया जाना चाहिए। सबसे अच्छी तरह से कुछ सर्वोत्तम अभ्यास हैं जो मैं भविष्य की परियोजनाओं पर लाभ उठाऊंगा, लेकिन यह सख्ती से एक संदर्भ / कॉपी-पेस्ट नौकरी होगी।
यह मेरे लिए प्लगइन्स के उपयोग के मामले की तरह नहीं है। विषय स्थापित है, शायद ट्वेंटी इलेवन का एक बच्चा विषय, शायद एक स्टैंडअलोन, इसके फ़ंक्शन। एफएपी में एक नाव लोड शामिल है, प्रत्येक प्रश्न में सीएमएस के एक अलग पहलू को संभालता है। फिर थीम टेम्प्लेट फ़ाइलें कस्टम 'टेम्प्लेट टैग' का उपयोग करती हैं जिन्हें शामिल किया गया है। मैं कुछ प्लगइन या अन्य सक्रिय होने पर निर्भरता के साथ विषय फ़ाइलें नहीं करना चाहता, आदि। यह सिर्फ सिस्टम में जटिलता का निर्माण करने के लिए समझ में नहीं आता है। ज़रूर, मैं इसे प्लगइन्स के उपयोग करने वाले फ़ोल्डर में रख सकता हूं, लेकिन यह अभी भी एक हैक की तरह महसूस करता है - अभी, इस परियोजना के लिए किए गए अनुकूलन के साथ जो कुछ करना है वह इसमें निहित है wp-content/themes/my-theme/
। मैं कुछ प्लगइन्स फ़ोल्डर में सामान की खोज करने पर भी विचार नहीं करना चाहता।
मुझे गलत मत समझो मुझे प्लगइन्स पसंद हैं और मैं उनका उपयोग करता हूं और उन्हें लिखता हूं। और मैं प्लग इन का उपयोग इस तरह के उच्च अनुकूलित थीम विकास के साथ संयोजन के रूप में करता हूं जब प्लगइन तृतीय-पक्ष होता है और जो मैं संभवतः उचित समय सीमा में रोल आउट कर सकता हूं उससे परे सर्वोत्तम प्रथाओं का प्रतिनिधित्व करता है। लेकिन जब मुझे एक-ऑफ परिदृश्य के लिए कोर कार्यक्षमता को संशोधित करने की आवश्यकता होती है, तो मैं एक्शन हुक, फिल्टर हुक की ओर मुड़ता हूं, और मैं उपयोगकर्ता के लिए प्लगेबल कार्यों और चीजों के प्रमाणीकरण पक्ष पर भी भरोसा करने में सक्षम होना चाहता हूं।