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