在 WordPress 中禁止自动更新可以通过多种方法实现,主要涉及修改核心配置文件 wp-config.php
或使用过滤器(Filters)。以下是详细的步骤和方法:
📌 方法一:在 wp-config.php
中禁用所有自动更新(最彻底)
1、定位 wp-config.php
文件: 这个文件位于你的 WordPress 安装根目录(与 wp-admin
, wp-content
, wp-includes
文件夹同级)。
2、编辑文件: 使用 FTP/SFTP 客户端、主机控制面板的文件管理器或 SSH 安全地编辑此文件。
3、添加代码: 在 <?php
之后,/* 好了!请不要再继续编辑。请保存本文件。使用博客! */
这一行之前,添加以下代码:
// 完全禁用所有自动更新(核心、主题、插件、翻译) define( 'AUTOMATIC_UPDATER_DISABLED', true );
4、保存并上传: 保存修改后的文件并上传回服务器(如果是在本地编辑的)。
🔧 方法二:精细控制不同类型的更新(推荐)
在 wp-config.php
中添加特定的常量来控制不同类型的更新:
1、禁用核心自动更新(包括安全更新):
// 禁用所有WordPress核心自动更新 define( 'WP_AUTO_UPDATE_CORE', false );
false
: 禁用所有核心更新(主要、次要、开发版)。minor
: (推荐安全选项) 仅禁用主要版本更新(如 6.4 -> 6.5),但允许次要版本和安全更新(如 6.4.1 -> 6.4.2)。强烈建议至少允许次要更新以获取安全补丁。true
: 启用所有核心更新(默认行为)。
2、禁用主题自动更新:
// 禁用所有主题自动更新 define( 'AUTOMATIC_UPDATER_DOSABLED', false );
3、禁用插件自动更新:
// 禁用所有插件自动更新 define( 'AUTOMATIC_UPDATER_DISABLED', false );
4、禁用翻译更新:
// 禁用自动翻译更新 define( 'DISABLE_WP_CRON', true ); // 注意:这会禁用所有WordPress内置的定时任务,包括检查更新,副作用较大,不推荐只为禁用翻译更新。 // 更推荐使用过滤器(见方法三)禁用翻译更新
🛠 方法三:使用过滤器(Functions.php)进行更灵活控制
在主题的 functions.php
文件(位于 wp-content/themes/your-active-theme/
)或自定义插件中添加代码。这种方法更灵活,可以基于条件控制。
1、禁用所有自动更新(核心、主题、插件):
add_filter( 'auto_update_core', '__return_false' ); // 核心 add_filter( 'auto_update_plugin', '__return_false' ); // 插件 add_filter( 'auto_update_theme', '__return_false' ); // 主题 add_filter( 'auto_update_translation', '__return_false' ); // 翻译
2、禁用核心主要版本更新(保留安全更新):
// 允许次要核心更新(安全更新),禁用主要更新 add_filter( 'allow_minor_auto_core_updates', '__return_true' ); add_filter( 'allow_major_auto_core_updates', '__return_false' );
3、禁用特定插件或主题的自动更新:
add_filter( 'auto_update_plugin', 'my_disable_specific_plugin_update', 10, 2 ); function my_disable_specific_plugin_update( $update, $item ) { // 禁用 'akismet' 插件的自动更新 if ( $item->plugin === 'akismet/akismet.php' ) { return false; } return $update; // 其他插件按默认设置处理 }
类似地,可以使用 auto_update_theme
过滤器和 $item->theme
(主题目录名)来禁用特定主题的更新。
⚠ 重要警告与建议
- 安全风险: 禁用所有更新,尤其是核心的次要更新(安全更新),会使你的网站面临已知安全漏洞的攻击。🚨 强烈建议至少保留
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
以自动应用安全补丁。 wp-cron.php
与主机计划任务: WordPress 依赖wp-cron.php
来触发更新检查。如果主机限制了wp-cron.php
的执行(或没有设置服务器级的 Cron 任务来触发wp-cron.php
),自动更新可能不会发生,即使你启用了它们。禁用自动更新解决了这个问题,但忽略了安全风险。- 测试更新: 无论是否禁用自动更新,在将更新应用到生产环境之前,务必在暂存环境进行测试。
- 手动更新: 如果禁用了自动更新,你需要定期手动登录 WordPress 仪表盘检查并应用可用更新。这是保持网站安全、稳定和兼容性的关键步骤。
- 插件替代方案: 有些插件(如 “Easy Updates Manager”)提供了图形界面来管理更新设置,可能比手动编辑代码更方便。
📋 总结推荐方案
1、最小化风险: 在 wp-config.php
中添加:
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); // 允许自动安全更新 define( 'AUTOMATIC_UPDATER_DISABLED', false ); // 允许主题和插件自动更新(或根据需要单独禁用)
然后定期手动检查和执行主要版本更新、主题和插件更新。
2、完全控制(承担更高安全风险): 在 wp-config.php
中添加:
define( 'AUTOMATIC_UPDATER_DISABLED', true ); // 一刀切禁用所有
但必须严格执行定期手动检查并立即应用所有更新(尤其是安全更新)的计划。 📅
选择哪种方法取决于你对网站稳定性、安全性和维护工作量的权衡。请务必优先考虑安全性。🔐
本文来自投稿,不代表谋盆百科网立场,如若转载,请注明出处:https://bk.moupen.com/p/49