ปิดใช้งานการแจ้งเตือนการอัปเดตสำหรับปลั๊กอินแต่ละรายการ


49

มีวิธีปิดใช้งานการแจ้งเตือนการอัปเดตสำหรับปลั๊กอินเฉพาะหรือไม่

ในฐานะนักพัฒนาปลั๊กอินฉันมีปลั๊กอินบางตัวติดตั้งบนเว็บไซต์ส่วนบุคคลของฉันโดยใช้รุ่น trunk svn สำหรับการทดสอบ แต่ปลั๊กอินเดียวกันนั้นพร้อมใช้งานจากไซต์ปลั๊กอิน ในกรณีเหล่านี้ WP ถือว่าเวอร์ชันล่าสุดเป็นเวอร์ชันที่เผยแพร่ล่าสุดและพยายามเตือนฉันเสมอว่ามีการอัปเดต

ฉันยังคงต้องการที่จะเห็นการแจ้งเตือนสำหรับการปรับปรุงในปลั๊กอินอื่น ๆ แต่มันน่ากลัวที่จะไม่สนใจการUpdates (2)แจ้งเตือนในส่วนหัว!


เพียงเปิดไฟล์ปลั๊กอินและเปลี่ยนหมายเลขเวอร์ชันเป็น 9.9.9
Bainternet

ขออภัย @Bainternet แต่มันอาจจะแฮ็คเกินไปเพราะเว็บไซต์เป็น svn-checkout และปลั๊กอินมาจากการsvn:externalอ้างอิงถึงรหัสการพัฒนาปลั๊กอิน การมีไฟล์ที่ปรับเปลี่ยนแบบโลคัลบนเซิร์ฟเวอร์ที่ใช้งานจริงไม่ใช่ตัวเลือก ตัวกรองของ Hameedullahทำงานได้เนื่องจากถูกบันทึกไว้ในที่เก็บรหัสสำหรับไซต์
คาเลบ

ใช่ฉันพลาดส่วนหนึ่งเกี่ยวกับเว็บไซต์ที่ทำงานบน SVN
Bainternet

คุณสามารถใช้ปลั๊กอินDisable Updates Managerโดย Websiteguy บน WordPress.org
matthew

คำตอบ:


67

ตัวอย่างเช่นหากคุณไม่ต้องการให้ Wordpress แสดงการแจ้งเตือนการอัปเดตสำหรับ akismet คุณจะทำดังนี้:

function filter_plugin_updates( $value ) {
    unset( $value->response['akismet/akismet.php'] );
    return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );

1
ฉันวางมันไว้ที่ส่วนท้าย./wp-config.phpแทนที่พา ธ ของปลั๊กอินแล้วมันก็ทำงานได้
คาเลบ

6
คุณสามารถใส่สิ่งนั้นลงในฟังก์ชั่นของ theme.php ของคุณถ้าเป็นไปไม่ได้จากนั้นคุณสามารถใส่ไฟล์ปลั๊กอินแยกต่างหาก ในมุมมองของฉันการวางสิ่งนี้ลงใน wp-config.php ไม่ใช่ความคิดที่ดี
Hameedullah Khan

1
ฉันไม่ต้องการให้ฟังก์ชั่นของฉันเชื่อมโยงกับธีมและการเพิ่มปลั๊กอินดูเหมือนจะเป็นการแฮ็คมากเท่ากับการแฮ็คปลั๊กอินที่ฉันมี คุณช่วยอธิบายได้ไหมว่าทำไมคุณถึงคิดว่า wp-config.php ไม่ใช่สถานที่ที่ดีในการวางแฮ็กการกำหนดค่าเฉพาะไซต์
คาเลบ

ทางออกที่ดีมากซึ่งทำงานได้ดีสำหรับฉันในฟังก์ชั่น มันง่ายที่จะเพิ่มปลั๊กอินเพิ่มเติมในรายการง่ายๆโดยการเพิ่ม unset อีกอัน () ... คำแนะนำที่ดี Hameedullah ..
Lars Koudal

2
สำหรับผู้ที่มีคำพูดเดียวกับ @Caleb ให้สร้างโฟลเดอร์ใหม่ชื่อ: mu-pluginsและสร้างปลั๊กอินเล็ก ๆ ที่คุณวางไว้ในโฟลเดอร์ wp-content เพื่อเพิ่มดังกล่าวข้างต้นโดยบางอย่างในนั้นwp-config.phpเป็น imho อย่างผิดที่ทำ
ชาร์ลส์

30

คำตอบของ Hameedullah Khan จะส่งคำเตือน PHP รวมสิ่งนี้หากข้อตรวจสอบเพื่อให้แน่ใจว่ามันเป็นวัตถุก่อนที่จะยกเลิกการตอบสนองสำหรับปลั๊กอินนั้น

'คำเตือน: พยายามแก้ไขคุณสมบัติของที่ไม่ใช่วัตถุ'

ลองใช้วิธีนี้เพื่อหลีกเลี่ยงคำเตือน (รหัสสำหรับไฟล์ปลั๊กอินเอง):

// remove update notice for forked plugins
function remove_update_notifications($value) {

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

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

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

// remove update notice for forked plugins
function remove_update_notifications( $value ) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ 'hello.php' ] );
        unset( $value->response[ 'akismet/akismet.php' ] );
    }

    return $value;
}
add_filter( 'site_transient_update_plugins', 'remove_update_notifications' );

ขอบคุณสำหรับสิ่งนี้ ฉันมีปัญหาในการใช้รหัสนี้โดยตรงในปลั๊กอินดูเหมือนว่าจะเป็นหนึ่งปลั๊กอิน แต่ทันทีที่ฉันทำกับคนอื่น ๆ (ชื่อ diff func) ฉันสูญเสียการแจ้งเตือนสำหรับปลั๊กอินทั้งหมดและลิงก์ "ดูรายละเอียด" สำหรับปลั๊กอิน wp-repo ด้วย หายไป. การใช้การตรวจสอบของคุณ แต่การวางไว้ในฟังก์ชั่นของ theme.php ของฉันน่าเชื่อถือมากขึ้นโดยไม่รบกวนการแจ้งเตือนการอัพเดตสำหรับปลั๊กอินอื่น ๆ ท้ายสุดการไม่ได้อยู่ในปลั๊กอินมีประโยชน์ในการไม่ต้องใช้ปลั๊กอินนั้นเพื่อให้ใช้งานได้ การปิดใช้งานปลั๊กอินด้วยรหัสนี้จะนำเสนอการแจ้งเตือนการอัปเดตอีกครั้งอย่างชัดเจน
Philip Ingram

2

ปิดใช้งานการแจ้งเตือนการอัพเดททั้งหมดด้วยรหัส

function remove_core_updates(){
        global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
    }
    add_filter('pre_site_transient_update_core','remove_core_updates');
    add_filter('pre_site_transient_update_plugins','remove_core_updates');
    add_filter('pre_site_transient_update_themes','remove_core_updates');

รหัสจะปิดใช้งานการแจ้งเตือนการอัปเดตสำหรับคอร์ WordPress, ปลั๊กอินและธีม


"ปลั๊กอินส่วนบุคคล" เป็นกุญแจสำคัญ
Gangesh

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