प्लगइन को संशोधित करने का उचित तरीका


15

प्लगइन को संशोधित करने का सबसे अच्छा तरीका क्या है? मैं अक्सर बड़े प्लगइन के भीतर एक या दो कार्यों में छोटे बदलाव करना चाहता हूं। यह आसानी से हो गया है, लेकिन मुझे अपने परिवर्तनों को चिह्नित करने और अपडेट के बाद फिर से प्लगइन को संशोधित करने के लिए टिप्पणियों का उपयोग करना होगा। आदर्श रूप से मैं अकेले प्लगइन छोड़ना चाहता हूं और अपने बदलाव कहीं और करना चाहता हूं, जैसे हम थीम और चाइल्ड थीम के साथ करते हैं। क्या मैं एक प्लगइन बना सकता हूँ जिसके लिए पेरेंट प्लगइन की आवश्यकता है और इसे ओवरराइड करेगा?


1
"संशोधन के बिना विस्तार करें" पर जाँच करें । मेरा मानना ​​है कि यह व्यावहारिक रूप से बेहतर समाधान है। विवरण के लिए इस लिंक की जाँच करें - एक वर्डप्रेस प्लगइन को अनुकूलित करने का सही तरीका
यूजीन जोसेफ

जवाबों:


7

IMHO, सबसे अच्छा तरीका यह है कि या तो प्लगिन को अपने परिवर्तनों को बनाए रखने के लिए कांटा करें, या फिर प्लगिन डेवलपर को पैच सबमिट करें, ताकि आपके परिवर्तनों को मूल प्लगिन का हिस्सा बनाया जा सके।

"चाइल्ड प्लगिन" बनाना वास्तव में आसान नहीं है। "चाइल्ड थीम" की अवधारणा वास्तव में उपयोग की जाने वाली टेम्पलेट फाइलों पर लागू होती है , थीम फ़ंक्शंस की तुलना में मोरसो (और वास्तव में, functions.phpपेरेंट और चाइल्ड दोनों की फाइल लोड हो जाती है, जिससे चाइल्ड या पेरेंट या तो अनुचित कोडित फ़ाइलों की समस्या होती है। functions.phpथीम)।


मेरे द्वारा किए जा रहे परिवर्तनों के प्रकार साइट-विशिष्ट हैं और इसलिए मुझे नहीं लगता कि पैच लगाना या सबमिट करना उचित होगा। मैं निश्चित रूप से प्लगइन्स के लिए और अधिक सामान्य सुधारों को ध्यान में रखूंगा।
माइक व्हीटन

लेकिन फोर्किंग मूल रूप से आप पहले से ही कर रहे हैं । असल में, वे आपके विकल्प हैं: कांटा, या पैच। @Chris_O एक अच्छा तरीका देता है कि आप अपस्ट्रीम प्लगिन को बनाए रखते हुए अपस्ट्रीम से ऑटोमैटिक अपडेट में खींच सकें।
चिप बेनेट

7

"सही" तरीका स्पष्ट रूप से प्लगइन पर निर्भर करता है। कुछ प्लगइन्स दूसरों की तुलना में संपादित करना आसान है, लेकिन अधिकांश प्लगइन्स वास्तव में अन्य प्लगइन्स द्वारा संशोधित किए जा सकते हैं।

उदाहरण के लिए, यदि किसी प्लगइन में वर्डप्रेस में एक क्रिया के साथ हुक है, तो आपके लिए एक और प्लगइन बनाना एक सरल बात है जो उस फ़ंक्शन को remove_action के साथ अनहुक करता है, और इसके बजाय आपके प्रतिस्थापन फ़ंक्शन को जोड़ता है। इस तरह की विधि आपको मूल प्लगइन को संशोधित किए बिना अपने स्वयं के संशोधित संस्करणों के साथ प्लग इन में व्यक्तिगत कार्यों को बदलने देगी।

एक ही अवधारणा फिल्टर के साथ काम करती है, जाहिर है।


4

सबसे अच्छा तरीका यह होगा कि आप इसे क्लोन करें और हेडर में प्लगिन नाम बदलें और डायरेक्टरी नाम बदलें। इस तरह से आप मूल स्थापित भी हो सकते हैं लेकिन सक्रिय नहीं हैं इसलिए अपडेट जारी होने पर भी आपको अलर्ट मिलेगा।

<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/
?>

यह अभी भी परिवर्तन खोजने के लिए प्लगइन के नए संस्करणों से गुजरने की आवश्यकता है (मुझे लगता है कि एक संस्करण तुलना उपकरण मदद करेगा) और फिर उन परिवर्तनों को मेरे कस्टम प्लगइन पर कॉपी कर रहा है। मुझे लगता है कि मैं प्लगइन डाउनलोड कर सकता हूं और अपने कस्टम संस्करण के साथ परिवर्तनों को मर्ज करने के लिए SVN का उपयोग कर सकता हूं।
माइक व्हीटन

2
प्लगइन्स पृष्ठ पर विकास लॉग लिंक पर अंतर फ़ाइल के लिए एक सीधा लिंक है। उदाहरण के लिए यहाँ W3 कुल कैश
क्रिस_ओ

3

यह बहुत आसान है अगर प्लगइन Git के वितरित प्रकृति के कारण Git स्रोत नियंत्रण में है, लेकिन कई वर्डप्रेस प्लगइन्स (और उन सभी में आधिकारिक रिपॉजिटरी में) सबवर्सन में हैं। अगर मुझे वास्तव में एक प्लगइन को संशोधित करने की आवश्यकता है, तो मैं विक्रेता शाखाओं और svn_load_dirs.php का उपयोग करता हूं , लेकिन इसके लिए एक बहुत ही उच्च आराम स्तर की आवश्यकता होती है।

यदि प्लगइन कोई रिपॉजिटरी को उजागर नहीं करता है, तो मैं इसे अपने आप को जीआईटी रिपॉजिटरी में बदलने की सलाह दूंगा और मैन्युअल रूप से नए संस्करण लागू करूंगा।

अंत में, वर्जन कंट्रोल सिस्टम नए अपस्ट्रीम वर्जन में फिर से बदलाव के लिए एकमात्र तरीका है।


3

मैं अन्निका बैकस्ट्रॉम के उत्तर से सहमत हूं , लेकिन मैं अपना पसंदीदा समाधान साझा करना चाहता हूं।

चूँकि अधिकांश प्लग-इन svn के अंतर्गत होते हैं, मैं git-svn नामक उपकरण का उपयोग git दर्पण बनाने के लिए करता हूँ।

फिर, मैं बस एक शाखा बनाता हूं और वहां अपने बदलाव करता हूं।

जब प्लगइन को अपस्ट्रीम में अपडेट किया जाता है, तो मैं सिर्फ svn रेपो से खींचता हूं और अपने कस्टम ब्रांच में विलीन हो जाता हूं।

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