彻底关闭 WordPress 自动更新和更新检查功能,提高后台运行速度
WordPress 支持在后台就可以自动去检查 WordPress 核心代码,插件和主题的版本,并且支持自动更新,这是非常了不起的功能,让 WordPress 站点时时保持最新版,特别是有安全漏洞出现的时候。
WordPress 自动更新的问题
但是这样也造成了其他一些问题:
1. WordPress 的更新服务器在国外,并且没有在国内开启加速服务,所以 WordPress 在后台检查更新的时候,可能因为各种原因无法顺畅连接上,然后一直卡着,造成 WordPress 后台有时很慢很慢。
2. 自动更新是好事,但是一些插件或者主题改动太大,造成了后台崩溃,那就不是好事了,😁 特别是生产环境崩了,那就更不是什么好事了,所以对于一些敏感的系统,最好在测试服务器上升级并测试好之后,再到正式生产服务器上升级。
所以综上所述,最好在正式服务器上关闭 WordPress 自动更新功能,在测试服务器上升级更新好之后,再更新到正式服务器,这样保证服务稳定,也能够让 WordPress 后台跑的更快。
关闭自动更新和更新检查功能
那么怎么关闭 WordPress 自动更新和后台更新检查呢?
首先 WordPress 提供了一个常量:AUTOMATIC_UPDATER_DISABLED
,在 wp-config.php
文件中将该值设置为 false,就可以关闭自定更新功能。
如果不想改 wp-config.php
文件,WordPress 还提供了一个 automatic_updater_disabled
接口,通过它也可以关闭自动更新:
add_filter('automatic_updater_disabled', '__return_true');
不过你有没有访问后台,WordPress 都会定时检测 WordPress 核心,插件和主题是否有更新了,这个功能是通过定时作业实现的,一共有三个定时作业:
wp_version_check
:检测 WordPress 核心代码是不是最新版本。wp_update_plugins
:检测 WordPress 插件是不是最新版。wp_update_themes
:检测 WordPress 主题是不是最新版。
这三个定时作业,每两天跑一次,不管有没有访问后台,他们都会运行检测你的站点是否需要更新。我们可以通过以下代码实现关闭定时更新检查的作业:
remove_action('init', 'wp_schedule_update_checks');
wp_clear_scheduled_hook('wp_version_check');
wp_clear_scheduled_hook('wp_update_plugins');
wp_clear_scheduled_hook('wp_update_themes');
除了定时作业之外,如果访问 WordPress 后台,WordPress 会每隔 12 小时,就会检测 WordPress 核心,插件和主题是否有更新了。这个就是 WordPress 有时很慢很慢的原因,因为很久没有访问 WordPress 后台,一访问 WordPress 就先去检测更新,所以就显得特别慢,感觉很明显,因为你访问,每隔 12 小时就会检测,所以造成很多人认为 WordPress 很慢。
所以这个每隔 12 小时就检测更新的功能,尤其要关闭,这是后台提速的关键:
remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');
我们这样屏蔽之后,是不是后台就无法获得 WordPress 更新了呢?不是的,当我们进入 WordPress 后台插件管理页面,主题管理界面,以及仪表盘下的更新子页面,无论什么时候进入这个三个界面,WordPress 都会去检测是否有新版本的。
当然也可以把进入这些页面就检测更新的功能去掉,但是个人觉得没有必要,进入具体页面干具体对应的事情,我觉得完全是没有问题,所以这里就不提供相关代码了。😄
上面这些代码都可以添加到当前主题的 functions.php
文件,也可以在 WPJAM Basic 插件中直接勾选屏蔽自动更新功能即可。
那么这样处理之后,如果有更新的时候,就要手动来更新了,建议使用 SSH 安装,升级和迁移 WordPress 博客。
屏蔽 WordPress 自动更新和更新检查功能已经整合到 WPJAM Basic 插件中,并已免费提供下载!