博客 / WordPress/ WordPress 自动更新与更新提示的禁用方法详解

WordPress 自动更新与更新提示的禁用方法详解

WordPress 自动更新与更新提示的禁用方法详解

如何禁用 WordPress 自动更新功能

WordPress 的自动更新功能虽然有助于保持网站安全,但在某些特定场景(如高度定制化网站、需要严格版本控制的场景)下,您可能需要完全控制更新时机。以下是两种禁用自动更新的方法。

方法一:修改 wp-config.php 配置文件

在网站的根目录下找到 wp-config.php 文件,在 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ 这行注释之前,添加以下常量定义:

/** 禁用所有 WordPress 自动更新功能 */
define('AUTOMATIC_UPDATER_DISABLED', true);

此方法会全局禁用核心、主题、插件和翻译文件的自动后台更新。

方法二:在主题的 functions.php 文件中添加过滤器

您也可以在当前使用主题的 functions.php 文件末尾添加以下代码:

// 禁用 WordPress 自动更新
add_filter('automatic_updater_disabled', '__return_true');

此方法通过 WordPress 的过滤器钩子实现,效果与方法一相同。

如何隐藏 WordPress 后台的更新提示

禁用自动更新后,WordPress 后台仪表盘和管理栏仍会显示更新提示。如果您希望完全隐藏这些提示,可以使用以下代码。

请注意: 以下示例使用了已弃用的 create_function 函数(PHP 7.2+ 中已移除)。我们提供了兼容性更好的现代写法。

推荐方法:使用匿名函数(兼容 PHP 5.3+)

将以下代码添加到当前主题的 functions.php 文件中:

// 完全隐藏 WordPress 后台的所有更新提示
add_filter('pre_site_transient_update_core', function($a){ return null; }); // 隐藏核心更新提示
add_filter('pre_site_transient_update_plugins', function($a){ return null; }); // 隐藏插件更新提示
add_filter('pre_site_transient_update_themes', function($a){ return null; }); // 隐藏主题更新提示

// 移除后台检查更新的定时任务
remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');

原方法说明(已过时)

原文中使用 create_function 的写法在旧版本中有效,但存在安全性和兼容性问题,不建议在新项目中使用。

重要提醒: 禁用更新提示意味着您将无法在后台直观地看到是否有新版本可用。请务必通过其他方式(如订阅官方博客、使用监控工具)定期手动检查更新,以确保网站安全。

总结与最佳实践建议

  • 选择性禁用: 考虑使用 WP_AUTO_UPDATE_CORE 常量进行更精细的控制(如仅禁用核心自动更新),而非完全关闭。
  • 使用子主题: 如果修改主题的 functions.php,请务必在子主题中进行,避免主题更新时修改被覆盖。
  • 插件方案: 对于不熟悉代码的用户,可以考虑使用“Easy Updates Manager”等插件来图形化地管理更新设置。
  • 安全责任: 禁用自动更新后,您需要承担起手动及时更新 WordPress 核心、主题和插件的责任,以修补安全漏洞。

发表评论

您的邮箱不会公开。必填项已用 * 标注。