सिंगल प्लगिन के लिए ऑटो अपडेट बंद करें


10

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


6
प्लगइन की मुख्य फ़ाइल के अंदर संस्करण संख्या बढ़ाएँ .. जैसे। 99.9... और अच्छे बदलाव के लिए रीडमी फ़ाइल के अंदर भी वही बदलाव करें (हालाँकि मुझे नहीं लगता कि वास्तव में इसकी आवश्यकता है) ..
t31os

क्या संस्करण संख्या समायोजित करना अभी भी काम करेगा यदि प्लगइन अपने संस्करण संख्याओं को कुछ इस तरह अपडेट करता है 1.10.1?
ईएमसी

जवाबों:


11

आप इसे अपने विषय के कार्यों में रखें

// Disable update notification for individual plugins - see my example of plugin block-spam-by-math-reloaded as to how to use this function

function filter_plugin_updates( $value ) {
    unset( $value->response['plugin-folder-name/plugin-file-name.php'] );    
    return $value;
}

add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

मुझे समझ नहीं आ रहा है कि आपके उत्तर में Google +1 बटन कोड क्यों है ... संभवतः एक बायाँ ओवर ...
brasofilo

बचा हुआ। माफ़ करना।
तारा

3
यह समाधान किसी अन्य प्लगइन को सक्षम या अक्षम करते समय एक चेतावनी फेंकता है। Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15
गुरुंग

गुरुंग आप इस पर WP के किस संस्करण का उपयोग कर रहे हैं?
फेडमीच

7

T31os का उत्तर सही था: प्लगइन की मुख्य फ़ाइल के अंदर संस्करण संख्या बढ़ाएँ .. उदा। 99.9 ... और अच्छे माप के लिए रीडमी फ़ाइल के अंदर भी वही परिवर्तन करें (हालाँकि मुझे नहीं लगता कि वास्तव में इसकी आवश्यकता है) .. - t31os


5

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

add_filter('site_transient_update_plugins', 'remove_update_notification_1234');
function remove_update_notification_1234($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
    return $value;
}

एक-पंक्ति संस्करण:

add_filter('site_transient_update_plugins', function ($value) { unset($value->response[ plugin_basename(__FILE__) ]);return $value; });

इस कोड .phpको उस प्लगइन की मुख्य फ़ाइल के शीर्ष पर रखें जिसे आप अक्षम करना चाहते हैं। यदि आप अपनी साइट में एक से अधिक बार इसका उपयोग करने की योजना बनाते हैं, तो _1234डुप्लिकेट नामों से बचने के लिए फ़िल्टर और फ़ंक्शन नाम को यादृच्छिक संख्याओं के एक अलग सेट में बदलें ।

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


1
मेरी राय में यह सबसे अच्छा जवाब है, खासकर यदि आप अपडेट को अक्षम कर रहे हैं क्योंकि आप स्वयं प्लगइन को संपादित कर रहे हैं। धन्यवाद ईएमसी
नाथन

3

जब मैं इस कोड का उपयोग कर रहा था तब मैंने अन्य प्लगइन्स को स्थापित या अपडेट करने के दौरान ऊपर वर्णित 'गुरुंग' जैसी PHP चेतावनियाँ प्राप्त कर रहा था। मैंने WP 4.3.1 में PHP चेतावनियाँ देखीं।

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

मैंने यूनिट परीक्षण नहीं किए हैं, लेकिन प्लगइन्स के हर अपडेट / इंस्टॉल पर PHP की चेतावनी मिल रही है और अब मैं उन्हें नहीं देखता।

function filter_plugin_updates( $value ) {

  // Add references to plugins you want to disable update notices for in the $plugins array
  $plugins = array(
    'k-elements/setup.php'
  );

  foreach( $plugins as $plugin ) {
    if ( isset( $value->response[$plugin] ) ) {
      unset( $value->response[$plugin] );
    }
  }

  return $value;

}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1

या आप बस इसे नाम बदलें तो यह एक ही प्लगइन 'नहीं' है।
आपको न केवल फ़ोल्डर का नाम बदलने की जरूरत है, बल्कि रीडमी और प्लगइन हेडर में भी।


1

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

त्रुटियों को खत्म करने के लिए, इसे बदलें:

unset($value->response[ plugin_basename(__FILE__) ]);

इसके लिए:

if($value) {
    unset($value->response[ plugin_basename(__FILE__) ]);
}

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


0

आप प्लगइन फ़ोल्डर का नाम बदलकर (या, एकल-फ़ाइल प्लगइन के मामले में, उस PHP फ़ाइल का नाम बदलकर) अपडेट को रोक सकते हैं। यह अब तक का सबसे सरल उपाय है। इसके अलावा, यह दृष्टिकोण इस तथ्य को बनाता है कि आपने भविष्य के देवों के लिए पारदर्शी कोड को बदल दिया है, जिसमें "भविष्य आप" भी शामिल है।


0

मुख्य प्लगइन फ़ाइल में एक उच्च संस्करण सबसे अच्छा है, लेकिन केवल एक विशेष हैक जोड़ते समय। यह एक अशक्त / अपरिभाषित संख्या को कॉल करता है और फिर उस संस्करण में रहेगा। उदाहरण:

संस्करण:

यह सुनिश्चित करेगा कि 2100 में इसे 9.9.9 या कुछ के बाद अपडेट नहीं किया जाएगा। यह परित्यक्त प्लगइन्स के लिए एक सरल तरीका है जो किसी समय बदल दिया जाएगा।

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