启用更新通知,禁用更新


10

关于如何禁用更新和/或删除更新通知存在很多问题。但是,所有禁用更新的解决方案也会禁用更新通知。

但是我想禁用更新的可能性,同时仍然收到有关可用更新的通知。

目前我使用define( 'DISALLOW_FILE_MODS', true ); Codex

这样做的问题是,它不仅禁用了更新过程,而且还禁用了通知。

编辑:好吧,我本人还是走下了兔子洞。我想我也应该澄清一下,我不是(仅)在谈论核心更新,而是在谈论插件和主题。

如果我理解正确,这是因为在/wp-admin/includes/update.php:250中,该函数提早返回。

所以我看到两个选择:

  • 重新添加会update_plugins破坏目的的选项,我不确定副作用
  • 添加我自己admin_init的复制钩子wp_plugin_update_rows。我试过了,但看起来还是不一样。似乎还有更多的东西,而且感觉这不是一种非常干净的方法。

编辑:有一张票证涵盖了这个问题,以防万一您想使用它:https : //core.trac.wordpress.org/ticket/25219


真?我使用它,但仍然看到更新通知。它告诉我“请通知站点管理员”
Stephen Harris

我更新了我的问题。
kraftner 2014年

1
为什么不使用wpremove或infinitewp之类的系统来通知更新。有了这些,您仍然可以关闭更新。我自己用。
罗伯特·

4
感谢罗伯特的想法,但这只是另一个依赖性,也不能回答,只是绕开了我的问题。
kraftner 2014年

Answers:


1

在您的子主题中添加以下代码,functions.php或将其打包为自定义插件以轻松启用/禁用:

add_action( 'wp_before_admin_bar_render', 'wpse161696_toolbar_menu' );
add_action( 'admin_menu', 'wpse161696_updates' );

function wpse161696_toolbar_menu() { // Remove update menu item from the toolbar
    global $wp_admin_bar;
    $wp_admin_bar -> remove_menu( 'updates' );
}

function wpse161696_updates() { // Remove all updating related functions
    remove_submenu_page( 'index.php', 'update-core.php' ); // Remove Update submenu
    // Redirect to Dashboard if update page is accessed
    global $pagenow;
    $page = array(
        'update-core.php',
        'update.php',
        'update.php?action=upgrade-plugin'
        );
    if ( in_array( $pagenow, $page, true ) ) {
        wp_redirect( admin_url( 'index.php' ), 301 );
        // wp_die( 'Updates are disabled.' ); // An error message can be displayed instead
        exit;
    }
}

这应该给您一些帮助。它将更新通知从仪表板的侧边栏和工具栏中删除,同时保留更新通知。

但是,现在更新仍将显示在每个插件下,这将允许用户执行更新:

在此处输入图片说明

一种解决方案是通过CSS隐藏链接。我不能完全解决这一问题,但是鉴于这个问题很老,我也不想浪费时间。我觉得这个问题需要解决。


感谢您的浏览。但是,您所做的并不是我真正想要的。首先,从菜单中隐藏东西实际上并没有将其删除/禁用。如果您知道URL,它仍然存在。重定向也很脆弱。DISALLOW_FILE_MODS不仅阻止更新,还可以做很多事情。同样将重定向放在admin_menu错误的位置。这显然是一个核心错误,需要在此修复。其他一切都是肮脏和脆弱的黑客。感谢您的尝试;)
kraftner

重定向到底如何脆弱?是什么使其他一切dirty呢?
伊桑·金克斯·奥沙利文

任何更新?我想知道是什么使重定向变得脆弱,一个示例将帮助我更好地理解。
伊桑·金克斯·奥沙利文

很抱歉没有回来。“脏”是指应将其固定在核心中的事实。我的措辞对事实并非如此感到非常失望,对此感到抱歉。“脆弱”是指这样的事实,即它假定页面网址太像页面URL,并且可能会随着WP更改而中断(例如,刚刚发生了闪亮的更新,我不知道是否会更改任何内容)。最后,我主要担心的是,我想将其DISALLOW_FILE_MODS用于还有其他原因,例如禁用编辑器。但是设置它true会触发此问题。抱歉,这个问题没有说清楚。
kraftner

我懂了。因此,由于需要调整核心文件,因此无法解决您的要求。
伊桑·金克斯·奥沙利文
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.