什么时候我们需要关闭WordPress自动更新?

wordpress自带有一个自动升级的功能,也就是说,如果wp检测到官方已经有新的升级可用的话他就会自己升级上去。这可能对于某些场合是个不错的功能,但是对于一些已经对系统做大量修改或者对插件稳定性不抱有特别大的信心的场合来说这有时无疑是致命的,特别对于一些禁止文件写入或容器重启后文件全部丢失的容器 (比如openshift)来说,它的升级也几乎没有什么作用,也会对系统造成一些不稳定因素,所以说这种场合我们需要关闭Wordpress的自动升级来保证站点运行的稳定。

如何关闭自动升级功能?

对于关闭自动升级的方案有很多方案可以选择,几经搜索我找到了一个 通过卸载相应hook 来达到目的的方法,将代码插入到functions.php文件尾部即可,代码如下

define( 'AUTOMATIC_UPDATER_DISABLED', true ); //禁用自动更新
add_filter('pre_site_transient_update_core', 'fake_update_callback'); // 关闭核心提示
add_filter('pre_site_transient_update_plugins', 'fake_update_callback'); // 关闭插件提示
add_filter('pre_site_transient_update_themes', 'fake_update_callback'); // 关闭主题提示
remove_action('admin_init', '_maybe_update_core'); // 禁止 WordPress 检查更新
remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件
remove_action('admin_init', '_maybe_update_themes'); // 禁止 WordPress 更新主题

如果你不喜欢这种方式,又或者觉得不方便也可以安装以下插件来解决这个问题

插件: wp-disable-update

这个插件需要在 wp-config.php 中设置常量 UPDATER_DISABLE 的值为 true 才可以动作 ,在这步可以在 wp-config.php 中加入逻辑来达到控制是否禁用的功能。比如我在里面加入了判断域名是否为测试环境的逻辑,这样就可以达到在测试环境中升级、在生产环境完全关掉升级的目的。