问题描述

到目前为止,我一直在使用以下代码来删除仪表盘更新消息 (「WordPress 3.5 可用!请现在更新」):

remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');
add_filter('pre_transient_update_core', create_function( '$a', "return null;"));

但是,目前的 WordPress 版本似乎不再适用。有没有新的方法来删除与以后的 WordPress 版本兼容的此消息?

最佳解决方案

如何隐藏 WordPress 更新记录

CSS

low-tech 的隐藏方式是使用 css:

// Low-tech hiding of update-mesages
// source: http://wpsnipp.com/index.php/functions-php/hide-update-nag-within-the-admin/
function remove_upgrade_nag() {
   echo '<style type="text/css">
           .update-nag {display: none}
         </style>';
}
add_action('admin_head', 'remove_upgrade_nag');

这个 more-or-less 的作品,但是很多工作要找到 WordPress 显示消息的地方。

Add_action

更好的方法是使用动作。 wordpress-core(本文中的核心是 WordPress 本身) 更新消息在 wp-admin/includes/update.php,第 84 行 core_update_footer 和第 139 行中以 update_nag 的名字触发。我们可以使用动作来禁用这些:

//hide core updates notification in the dashboard
function hide_wp_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 ); //update notice at the top of the screen
    remove_filter( 'update_footer', 'core_update_footer' ); //update notice in the footer
}
add_action('admin_menu','hide_wp_update_nag');

作为替代:

add_action( 'admin_notices', 'update_nag', 3 );

您可能想要使用,对于 multi-site:

add_action( 'network_admin_notices', 'update_nag', 3 );

仪表板通知有点困难,这应该做的工作:

//hide plugin updates notification in the dashboard
function hide_plugin_update_indicator(){
    global $menu,$submenu;
    $menu[65][0] = 'Plugins';
    $submenu['index.php'][10][0] = 'Updates';
}
add_action('admin_menu', 'hide_plugin_update_indicator');

虽然更新通知是隐藏的,但仍然可以看到需要在以下页面上更新某些内容 (并进行更新):

  • /wp-admin/update-core.php

  • /wp-admin/themes.php

  • /wp-admin/plugins.php

禁用更新

如果您完全禁用更新,请使用:

//http://codex.wordpress.org/Transients_API
add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // disable core update
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // disable plugin update
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // disable theme update

这将完全禁用核心,插件和主题的更新。

Plugins

您可以将此代码放在 functionality plugin 中,因此它适用于所有主题。

一些 ready-made 插件:

Bonus

了解如何排除特定的插件更新:

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。