wordpress自己带有一个自动升级的功能,也就是说,如果wp检测到官方已经有新的升级可用的话他就会自己升级上去。这可能对于某些场合是个不错的功能,但是对于一些已经对系统大量魔改或者对插件稳定性不抱有特别大的信心的场合来说这有时无疑是致命的,对于一些 禁止文件写入或容器重启后文件全部丢失的容器 (比如openshift)来说,它的升级也几乎没有什么作用,也会对系统造成一些不稳定因素,所以说这种场合我们需要关闭Wordpress的自动升级来保证站点运行的稳定 如何关闭自动升级功能?对于关闭自动升级的方案有很多方案可以选择,几经搜索我找到了一个 通过卸载相应hook 来达到目的的方法,代码如下 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 更新主题 按照那篇文章的说法,将这些加入你用的主题的 function.php 中即可达到目的,但是这样多多少少会略显不便。所以我写了一个插件来达到此目的 插件: wp-disable-update 这个插件需要在 wp-config.php 中设置常量 UPDATER_DISABLE 的值为 true 才可以动作 ,在这步可以在 wp-config.php 中加入逻辑来达到控制是否禁用的功能。比如我在里面加入了判断域名是否为测试环境的逻辑,这样就可以达到在测试环境中升级、在生产环境完全关掉升级的目的。 |