ปิดการอัพเดทอัตโนมัติสำหรับปลั๊กอินเดียว


10

ฉันมีปลั๊กอินที่ฉันรู้ว่าฉันไม่ต้องการอัปเดต ฉันรู้ว่านี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุด แต่ในกรณีนี้จะต้องทำ มีวิธีใดบ้างที่จะหยุด WordPress ไม่ให้ฉันอัปเดตปลั๊กอินเฉพาะโดยอัตโนมัติ (แต่ยังคงเตือนตามปกติสำหรับปลั๊กอินอื่น ๆ ทั้งหมด)


6
เพิ่มหมายเลขรุ่นในไฟล์หลักของปลั๊กอิน .. เช่น 99.9... และยังทำให้การเปลี่ยนแปลงเดียวกันในไฟล์ readme วัดดี (แต่ฉันไม่คิดว่ามันจำเป็นจริง ๆ ) ..
t31os

การปรับหมายเลขเวอร์ชันจะยังคงทำงานอยู่หรือไม่หากปลั๊กอินอัปเดตหมายเลขเวอร์ชันเป็นแบบ1.10.1ใด
emc

คำตอบ:


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

ที่เหลือ. ขอโทษ
Tara

3
วิธีนี้จะส่งคำเตือนขณะเปิดใช้งานหรือปิดใช้งานปลั๊กอินอื่น ๆ Warning: Attempt to modify property of non-object in /home/XXXXXX/public_html/wp-content/themes/XXXXXXX/custom-functions.php on line 15
gurung

gurung คุณใช้ WP รุ่นนี้ในอะไร?
fedmich

7

คำตอบของ T31os ถูกต้อง: เพิ่มหมายเลขรุ่นในไฟล์หลักของปลั๊กอิน .. เช่น 99.9 ... และยังทำให้การเปลี่ยนแปลงเดียวกันนั้นในไฟล์ readme สำหรับการวัดที่ดี (แม้ว่าฉันไม่คิดว่ามันจำเป็นจริง ๆ ) .. - t31os


5

แม้ว่าคำตอบของ Tara จะทำงานได้ดี แต่ก็ต้องให้โปรแกรมเมอร์ป้อนเส้นทางไปยังไฟล์ปลั๊กอินหลักและจะสามารถใช้งานได้เฉพาะเมื่อเปิดใช้งานชุดรูปแบบนั้น ทางเลือกอื่นอาจมีลักษณะเช่นนี้:

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
นี่คือคำตอบที่ดีที่สุดในความคิดของฉันโดยเฉพาะถ้าคุณปิดการใช้งานการปรับปรุงเพราะคุณกำลังแก้ไขปลั๊กอินด้วยตัวเอง ขอบคุณ emc
นาธาน

3

ฉันได้รับคำเตือน PHP เช่น 'gurung' ที่กล่าวถึงข้างต้นเมื่อฉันติดตั้งหรืออัปเดตปลั๊กอินอื่น ๆ เมื่อฉันใช้รหัสนี้ ฉันเห็นคำเตือนของ PHP ใน WP 4.3.1

ฉันพบโพสต์อื่น ๆ ใน stackexchange เกี่ยวกับปัญหาและฉันมาพร้อมกับฟังก์ชั่นที่วนรอบการอ้างอิงปลั๊กอินของคุณและตรวจสอบก่อนเพื่อดูว่ามีการอ้างอิงปลั๊กอินนั้นแล้วหรือไม่ (เพื่อหลีกเลี่ยงคำเตือน 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

หรือคุณเพียงแค่เปลี่ยนชื่อมันเป็น 'ไม่ใช่' ปลั๊กอินเดียวกัน
คุณต้องเปลี่ยนชื่อไม่เพียง แต่โฟลเดอร์ แต่ยังอยู่ในส่วนหัวของ readme และ plugin


1

ฉันสืบทอดไซต์ที่มีการติดตั้งโค้ด snip ของ npc ซึ่งทำให้เกิดข้อผิดพลาดต่อความคิดเห็นของ gurung ผลักฉันถั่ว ฉันลังเลที่จะแก้ไขโค้ดในปลั๊กอินจนกว่าฉันจะรู้ว่า snipper นั้นเป็นแบบกำหนดเองอยู่แล้ว

หากต้องการกำจัดข้อผิดพลาดให้เปลี่ยนสิ่งนี้:

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

สำหรับสิ่งนี้:

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

อาจมีบางคนที่เห็นได้ชัด แต่ที่สำคัญคือมันถูกกำหนดเองแล้วเพื่อให้คุณสามารถแก้ไขได้และมันอาจจะไม่ถูกเขียนทับโดยการปรับปรุงเพราะประเด็นทั้งหมดคือการป้องกันไม่ให้คุณอัปเดตปลั๊กอิน


0

คุณสามารถป้องกันการอัพเดทง่ายๆโดยการเปลี่ยนชื่อโฟลเดอร์ปลั๊กอิน (หรือในกรณีของปลั๊กอินไฟล์เดียวให้เปลี่ยนชื่อไฟล์ PHP นั้น) นี่คือทางออกที่ง่ายที่สุด นอกจากนี้วิธีนี้ทำให้ความจริงที่ว่าคุณเปลี่ยนรหัสโปร่งใสเป็น devs ในอนาคตรวมถึง "อนาคตคุณ"


0

เวอร์ชันที่สูงกว่าในไฟล์ปลั๊กอินหลักนั้นดีที่สุด แต่เมื่อเพิ่มแฮ็คพิเศษเท่านั้น มันเรียกหมายเลข null / undefined แล้วจะยังคงอยู่ในรุ่นนั้น ตัวอย่าง:

เวอร์ชัน:

สิ่งนี้จะช่วยให้มั่นใจได้ว่าในปี 2100 จะไม่มีการอัปเดตหลังจาก 9.9.9 หรืออะไรทำนองนั้น มันเป็นวิธีการง่ายๆสำหรับปลั๊กอินที่ถูกทอดทิ้งซึ่งบางครั้งจะถูกแทนที่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.