如何禁用WordPress自动更新,避免系统崩溃

文 / @UTHEME

WordPress自动更新功能本意是为了提升网站安全性和稳定性,但在实际使用中,自动更新可能导致主题、插件兼容性问题,甚至造成网站崩溃。特别是对于使用了大量自定义代码或依赖特定插件版本的网站,突如其来的自动更新往往带来灾难性后果。本文将详细介绍如何安全地禁用WordPress各项自动更新功能,并提供合理的手动更新策略,帮助您在安全性和稳定性之间找到最佳平衡点。

WordPress自动更新机制详解

WordPress的自动更新功能分为四个层级:核心文件更新、插件更新、主题更新和翻译文件更新。从WordPress 3.7版本开始,系统默认启用了安全版本和次要版本的自动更新。WordPress 5.5之后,插件和主题也可以设置为自动更新。这个机制通过WP-Cron定时任务实现,每12小时检查一次更新。

自动更新的触发条件包括:系统检测到新版本发布、当前版本存在安全漏洞、或者管理员在后台启用了自动更新选项。虽然自动更新能及时修复安全漏洞,但也可能引发兼容性问题。特别是主版本更新可能改变核心API,导致依赖旧版本功能的插件或主题失效。

对于生产环境网站,建议先在测试环境验证更新兼容性。自动更新缺少这个验证环节,因此禁用自动更新并采用人工控制的更新策略更为稳妥。了解自动更新机制后,我们可以针对性地选择禁用方案。

禁用WordPress核心文件自动更新

禁用核心文件自动更新最常用的方法是修改wp-config.php文件。在文件中添加以下代码可以完全禁用所有核心更新:

define( ‘AUTOMATIC_UPDATER_DISABLED’, true );

这行代码会完全关闭自动更新器,包括核心文件、插件和主题的所有自动更新。如果只想禁用核心文件的主版本更新,保留安全补丁的自动更新,可以使用:

define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ );

该设置允许安全更新和次要版本更新自动进行,但主版本更新需要手动操作。如果要完全禁用核心更新包括安全补丁,使用:

define( ‘WP_AUTO_UPDATE_CORE’, false );

需要注意的是,禁用核心更新后,您需要定期手动检查更新并在测试环境验证后再应用到生产环境。建议至少每月检查一次WordPress官方发布的安全公告,及时应用关键安全补丁。

禁用插件和主题自动更新

WordPress 5.5引入了插件和主题的单独自动更新控制。在后台的插件页面和主题页面,每个项目都有”启用自动更新”开关。但如果要从代码层面完全禁用这些功能,需要在主题的functions.php文件或自定义插件中添加过滤器。

禁用所有插件自动更新的代码:

add_filter( ‘auto_update_plugin’, ‘__return_false’ );

禁用所有主题自动更新的代码:

add_filter( ‘auto_update_theme’, ‘__return_false’ );

如果只想禁用特定插件的自动更新,可以使用更精细的控制。这种方法允许您保留大部分插件的自动更新功能,仅对关键插件或已知存在兼容性问题的插件禁用自动更新。对于使用了大量自定义修改的主题,强烈建议禁用主题自动更新,避免更新覆盖您的修改内容。

制定安全的手动更新策略

禁用自动更新后,必须建立规范的手动更新流程。首先,搭建与生产环境相同的测试环境,包括相同的WordPress版本、PHP版本、插件和主题配置。每次更新前,先在测试环境中验证兼容性。

更新顺序也很重要:先备份数据库和文件,然后按照”核心文件-插件-主题”的顺序更新。更新核心文件后,检查网站前后台功能是否正常。插件更新要逐个进行,每更新一个插件都要测试相关功能,发现问题时可以快速定位到具体插件。

建议制定更新时间表:安全更新应在发布后24-48小时内应用;功能更新可以每月集中处理一次;主版本更新建议等待至少两周,让社区发现并解决初期问题后再更新。对于电商网站或高流量网站,选择业务低峰期进行更新操作。

使用版本控制系统(如Git)管理WordPress网站代码,每次更新前创建新分支,更新后进行代码审查。保留至少最近三个版本的完整备份,确保出现问题时可以快速回滚。

扩展技巧:使用插件管理更新策略

对于不熟悉代码的用户,可以使用专业插件来管理更新策略。Easy Updates Manager是一款功能强大的免费插件,提供图形化界面控制所有更新选项。该插件允许您分别设置核心文件、插件、主题和翻译文件的更新策略,还可以设置更新通知邮件。

Advanced Automatic Updates插件提供了更细致的控制选项,可以设置更新时间窗口、排除特定插件或主题、自动备份等功能。对于管理多个WordPress网站的用户,MainWP等管理平台可以集中控制所有网站的更新策略。

另一个实用技巧是禁用更新通知。如果您已经制定了定期检查更新的计划,频繁的更新提示可能带来干扰。在functions.php中添加以下代码可以隐藏更新通知:

remove_action( ‘admin_notices’, ‘update_nag’, 3 );

常见问题解答

禁用自动更新会降低网站安全性吗?

禁用自动更新本身不会降低安全性,关键在于您是否建立了及时的手动更新机制。如果禁用后长期不更新,确实会产生安全风险。建议订阅WordPress安全公告,对于严重安全漏洞要立即手动更新。

已经禁用自动更新,为什么网站还是自动更新了?

可能的原因包括:主机商启用了WordPress托管服务的强制更新、缓存插件导致配置未生效、或者其他插件重新启用了自动更新功能。检查主机控制面板设置和已安装的管理类插件配置。

如何只允许安全更新自动进行?

在wp-config.php中使用 define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ ); 配置,这样只有次要版本和安全补丁会自动更新,主版本更新需要手动操作。对于插件和主题,目前WordPress核心功能不支持区分安全更新,需要使用第三方插件实现。

总结

禁用WordPress自动更新是提升网站稳定性的有效手段,特别适合高度定制化的网站或对稳定性要求极高的生产环境。通过在wp-config.php中添加配置代码或使用过滤器钩子,您可以精确控制各个层级的更新行为。但禁用自动更新并非一劳永逸,必须配合完善的手动更新流程和定期安全检查。

建议的最佳实践是:对核心文件保留安全更新的自动应用,对关键插件和主题禁用自动更新,建立测试环境验证所有更新,制定定期检查和更新计划。这样既能享受及时安全补丁带来的保护,又能避免兼容性问题导致的网站故障。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。