WordPress 3.7 发布,其中一个最重大的功能就是 WordPress 可以后台自动更新了,无需人工介入。为了更好安全性和并且使得这个更新的过程更流畅,在默认情况下,只有小版本更新(比如安全和维护更新)以及翻译文件更新才被开启。
实际上 WordPress 后台自动更新功能有以下四种类型的更新:
核心文件更新被分成三种模式:
默认,自动更新只开启了更新小版本发布和翻译文件。那么如何设置更新模式呢?我们可以通过定义常量或者过滤器来处理:
可以通过在 wp-config.php 文件中定义常量 WP_AUTO_UPDATE_CORE 下面三种值来设置不同更新模式:
除了开启或者关闭所有三种的核心更新模式之外,如果你想单独开启某种或者关闭它们,我们可以用到这几个 filter:allow_dev_auto_core_updates
, allow_minor_auto_core_updates
, 以及 allow_major_auto_core_updates
这里有两个 WordPress 内置的函数 __return_true
和 __return_false
会用来设置开启和关闭。
开启开发更新模式,和开发版本同步:
add_filter( 'allow_dev_auto_core_updates', '__return_true' );
关闭小版本更新:
add_filter( 'allow_minor_auto_core_updates', '__return_false' );
开启大版本更新:
add_filter( 'allow_major_auto_core_updates', '__return_true' );
插件和主题自动更新在默认是关闭的,可以通过 auto_update_type 这个 filter 去开启它们,其中 type 可能是 "plugin" 或者 "theme".
开启插件自动更新:
add_filter( 'auto_update_plugin', '__return_true' );
开启主题自动更新:
add_filter( 'auto_update_theme', '__return_true' );
翻译更新默认是开启的,如果要关闭:
add_filter( 'auto_update_translation', '__return_false' );
WordPress 后台自动更新功能很贴心,保证网站的代码实时最新,但是很多人感觉我的网站我做主,不希望自动更新,WordPress 也是提供了选项:
也是使用 auto_update_type 这个 filter,不过这时 type 应该是“core”,所以关闭核心更新:
add_filter( 'auto_update_core', '__return_false' );
两种方法:
1. 在 wp-config.php 添加如下常量:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
2. 或者使用下面的 filter:
add_filter( 'automatic_updater_disabled', '__return_true' );