वर्डप्रेस कोर फ़ाइलों को संशोधित करना


21

क्यूं कर?

कभी-कभी वर्डप्रेस या एक प्लगइन के व्यवहार को बदलने के लिए एक आसान फिक्स सीधे प्लगइन या वर्डप्रेस की फ़ाइलों को बदलना हो सकता है। इस तरह के विचार के साथ आने पर, सामान्य प्रतिक्रिया होती है:

कोर हैक मत करो।

कोर फाइलों को बदलना आमतौर पर एक बुरा विचार क्यों है?

विचार करें?

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

कैसे?

आपने सभी विकल्पों पर विचार किया है, लेकिन एकमात्र समाधान कोर फ़ाइलों को हैक करना है। आपको ऐसा करने के बारे में कैसे जाना चाहिए? कैसे एक बदल कोर होगा, अद्यतन की तरह वर्कफ़्लोज़ को प्रभावित करेगा?


1
मैं कोर को हैक करने की किसी भी सिफारिश से पूरी तरह असहमत हूं क्योंकि मुझे अभी तक एक भी ऐसी चीज नहीं मिली है जिसके बारे में मैं काम नहीं कर सकता। केवल वे लोग जिनके पास उत्पादन साइट के लिए कोई व्यवसाय हैकिंग कोर है, वे हैं जिन्हें इस विषय पर कुछ भी पढ़ने की बिल्कुल आवश्यकता नहीं है क्योंकि वे शायद पहले से ही वर्डप्रेस कोर टीम पर हैं। लोगों को समझाते हुए कि यह कैसे करना है, बस 99 में से 100 लोग ऐसे हैं जो निश्चित रूप से इसे अपने फैसलों को तर्कसंगत बनाने का एक तरीका नहीं होना चाहिए। और मैं वास्तव में यहां सक्षम होने से नफरत करता हूं। JMTCW।
माइकस्किंकेल

अनुवर्ती कार्रवाई के रूप में, यहां एक प्रश्न का एक उदाहरण है जो पहले उत्तर में था "यह संभव नहीं है" और मैंने एक उदाहरण के साथ उत्तर दिया कि कैसे: wordpress.stackexchange.com/questions/972/#984 एक (लगभग हमेशा) एक तरीका है यह w / o हैकिंग कोर करते हैं।
माइकस्किंकेल

2
यदि आप कोर बदलते हैं, तो आपको हर एक बार अपग्रेड करने के बाद परिवर्तनों को फिर से करना होगा, और आप अपनी स्थापना को गैर-मानक बना देंगे, ताकि लोगों को आपकी सहायता करना कठिन हो। बस एक प्लगइन बनाएं, एक विजेट, एक टेम्पलेट, एक हुक या कई तरीकों में से कोई भी वर्डप्रेस आपको कोर बदलने के लिए नहीं प्रदान करता है।
वादी एम।

वादी सही है। मैंने विभिन्न चीजों को ठीक करने / सुधारने / अनुकूलित करने के लिए कुछ मुख्य फाइलों में बदलाव किए हैं और उन्नयन के समय मैं हमेशा निराश रहता हूं क्योंकि मुझे बदलावों की जांच करनी है और नई फाइलों के लिए अपने पैच लगाने हैं। यह तब और भी अधिक निराशाजनक होता है जब नई फाइलें पुराने वाले से बहुत अधिक भिन्न होती हैं और परिवर्तनों के स्थान अब स्पष्ट नहीं हैं (या यहां तक ​​कि सभी में मौजूद हैं)।
1

1
जैसा कि मुझे डर था; कभी-कभी जब कोई परिष्कृत हुक नहीं होते हैं (जैसे कि मेरी साइट को संशोधित करना), तो केवल वही हुक होते हैं जो बफर-आउटपुट ट्रिक के लिए काम करते हैं admin_body_classऔर admin_footerजिसका अर्थ है पूरे पृष्ठ पर कब्जा करना । मैंने अभी इसकी कोशिश की और इसमें> 2MB सामग्री है जिसे संबंधित अनुभाग के लिए खोजा जाना है, फिर आउटपुट करने से पहले पार्स और संशोधित किया गया है। या, मैं कोड के एक हिस्से को दाईं ओर जोड़ सकता हूं my-sites.phpऔर अपडेट के बाद पैच को लागू करने के लिए एक अलग उपकरण का उपयोग कर सकता हूं (यह मानते हुए कि इसे बिल्कुल संशोधित किया गया था)। इस तरह से परिदृश्यों में कोर को संशोधित करने के खिलाफ मामला बनाना वास्तव में कठिन है।
सिनेटेक

जवाबों:


21

यदि आपको कोर हैक करना है , तो ऐसा करने पर विचार करें जो इसे दूसरों के लिए एक्स्टेंसिबल बनाता है।

एक क्रिया हुक जोड़ें

दस में से नौ बार, आप वह कर सकते थे जो आप चाहते थे यदि केवल do_actionएक विशिष्ट फ़ाइल में एक अतिरिक्त कॉल था । उस स्थिति में, कार्रवाई जोड़ें, इसे दस्तावेज़ करें, और Trac के माध्यम से एक पैच सबमिट करें । यदि आपके पैच का एक अच्छा कारण है (यानी आप केवल एक ही व्यक्ति हैं जो कभी इसका उपयोग नहीं करेंगे) तो आप शायद इसे कोर में जोड़ सकते हैं।

अगला, एक कस्टम प्लग-इन का निर्माण करें (आपको इसे जारी करने / वितरित करने की आवश्यकता नहीं है!) जो इस नए हुक से जुड़ता है और आपको जो भी कार्य करने की आवश्यकता होती है वह करता है।

एक मुख्य फ़ाइल को रिफलेक्टर करें

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


क्या आप यहाँ एक विषय विकसित कर रहे हैं? हैकिंग कोर जरूरी नहीं, नहीं-नहीं ... बस कुछ डेवलपर्स नए उपयोगकर्ताओं या नौसिखिए प्रोग्रामर के लिए अत्यधिक हतोत्साहित करेंगे (यदि आप हमसे पूछ रहे हैं कि कुछ कैसे करना है, तो हम हर बार पहले भी एक प्लग-इन का सुझाव देंगे। आपको हैक करने का सुझाव देने पर विचार करते हुए)।

हैकिंग कोर वह तरीका है जिससे वर्डप्रेस विकसित और विकसित होता है, लेकिन यह किसी के लिए PHP सीखने या WP फ़ाइलों के साथ काम करने के अनुभव के साथ खतरनाक है। कृपया कोर को छूने से पहले प्लग-इन से शुरू करें - यदि आप किसी प्लग-इन को तोड़ते हैं, तो आप इसे जल्दी से अनइंस्टॉल कर सकते हैं (यदि आवश्यक हो तो एफ़टीपी के माध्यम से हटाकर) ... लेकिन यदि आप कोर को तोड़ते हैं, तो बुरी चीजें आपकी साइट पर हो सकती हैं और आपकी संभावित रूप से साथ ही डेटाबेस।

लेकिन अगर आप ऐसी स्थिति में हैं जहां एक कोर हैक अपरिहार्य है, तो बदलाव करें। इसके अलावा, अपने परिवर्तन को एक प्रमुख स्थान पर प्रकाशित करें (यदि आपका ब्लॉग अत्यधिक दृश्यमान है, तो यह पर्याप्त हो सकता है ... लेकिन मैं Trac का सुझाव देता हूं, क्योंकि सामुदायिक परिवर्तन अगली रिलीज़ में खींच लिए जाते हैं)। आपका परिवर्तन जादू की गोली हो सकती है जो सौ अलग-अलग साइटों में समस्याओं को ठीक कर सकती है ... इसलिए उस समुदाय में वापस योगदान करें जिसने आपकी साइट बनाने में मदद की।

यदि परिवर्तन हो जाता है, तो आपकी हैक कोर का हिस्सा बन जाती है और आपको भविष्य में इसके बारे में चिंता करने की आवश्यकता नहीं होगी। यदि ऐसा नहीं होता है, तो आपके पास 3 महीने में WP अपग्रेड करने के बाद हैक को फिर से लागू करने के बारे में विस्तृत दस्तावेज हैं।


बहुत बेहतर शब्द है तो मेरा :)
हकर्रे

3

कोर हैक मत करो।

खैर ऐसा इसलिए है क्योंकि यह पहले स्तर के अनुभवहीन उपयोगकर्ताओं के लिए एक सुझाव है। जो हैकिंग कोर उनकी स्थापना को तोड़ देंगे, वे यह सुनिश्चित नहीं कर सकते कि उनके परिवर्तन एक अपडेट आदि को जारी रखते हैं।

ज़रूर, हैक कोर!

यकीन है कि आप वास्तव में कोर हैक कर सकते हैं, उदाहरण के लिए एसवीएन जैसे संस्करण प्रबंधन प्रणाली का उपयोग करके। यह आपको प्रोजेक्ट अपडेट के अनुरूप कोर कोड पर अपने स्वयं के परिवर्तन रखने में मदद करता है। यह Wordpress के लिए पैच बनाने और उन्हें प्रोजेक्ट पर भेजने में भी मदद करता है।

हैकिंग कोर, Wordpress विकसित करने के लिए अचूक है।

विचार

यदि आप एक पूर्ण SVN इंस्टॉल नहीं करना चाहते हैं और आप अभी भी जानते हैं कि आपने (कुछ) फ़ाइलों को बदल दिया है, तो आप अधिक निम्न-स्तरीय टूल जैसे कि Diff / Merge (जीतने के लिए: WinMerge ) या संपादकों की तुलना क्षमताओं के साथ कर सकते हैं (जैसे नोटपैड ++ की तुलना प्लगइन के साथ )। लिनक्स पर आप आसानी से कमांड-लाइन उपयोगिताओं को स्थापित कर सकते हैं जो समान हैं। Geany संपादक btw एक अच्छा शेल एकीकरण के साथ आता है। ।

मैं कठिन नौकरियों के लिए ग्रहण पीडीटी पसंद करता हूं। लेकिन यह त्वरित संपादन या हैक करने के लिए नहीं है।

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


हैकिंग कोर लंबे समय में एक अच्छा समाधान नहीं है। कभी नहीँ।
फ्रेड

@ Fredy31; यह आपके वर्डप्रेस इंस्टॉलेशन को अप-टू-डेट, काम करने और सुरक्षित रखने का एकमात्र तरीका है। इसके अलावा "लॉन्ग रन" जो आप यहां बोलते हैं वह वास्तव में लंबा है अगर दो साल और लंबे समय तक Wordpress को पैच प्रदान करने और फिर इसे प्राप्त करने के बीच होता है। यहां तक ​​कि बिना पैच के किसी समस्या की रिपोर्ट करने के लिए भी। ध्यान रखें।
hakre

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

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

2

मुद्दे हैं:

  1. हर बार जब आप कोर का एक अपडेट करते हैं (जैसे कि एक सुरक्षा फिक्स आदि के कारण), तो आपको स्वचालित अपडेटर को चलाने के बजाय इसे मैन्युअल रूप से अपडेट करना होगा।
    यदि आप ऐसा करना चाहते हैं, तो जीवन को अपने लिए आसान बनाएं:
    • एक आम मार्कर (.eg // PATCH STARTऔर // PATCH END) के साथ हर परिवर्तन को चिह्नित करें
    • नए स्रोत के साथ मौजूदा स्रोत की तुलना करने के लिए WinMerge जैसे टूल का उपयोग करें, और उन बदलावों की प्रतिलिपि बनाएँ जहां necesary है।
    • यदि आप जिस कोड की प्रतिलिपि बना रहे हैं उसका क्षेत्र बदल गया है, और आपके पैच में उपयुक्त परिवर्तन करने की स्थिति में आपको यह देखना होगा
    • इस बात का ध्यान रखें कि यह एक 'कभी न खत्म होने वाला' काम है, जब तक आप इसके लिए अपने ग्राहक को विद्रोह नहीं कर सकते, तब तक यह बिल योग्य समय लेता है।
  2. आप प्लगइन्स के साथ असंगति के मुद्दों का कारण बन सकते हैं जो कोर को एक निश्चित तरीके से काम करने की उम्मीद करते हैं - इसके लिए अतिरिक्त परीक्षण की आवश्यकता होगी

कभी-कभी यह 100% अपरिहार्य है, लेकिन मैं लगभग हमेशा चीजों को प्राप्त करने, या ऐसा करने में लगने वाले समय की संभावित लागत के कारण कल्पना को बदलने के साथ आ सकता हूं। यह केवल एक उचित दुःस्वप्न है, और कई लोग उचित समाधान की तलाश करने के बजाय, हैकिंग कोर के लिए जाते हैं।

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