WordPress 内核、主题、插件的更新都很频繁,一旦更新,我们修改过的代码就会消失(如何解决?),而且受中国网络环境的影响,很多时候更新都无法成功。
如此一来,网站后台不断地检测更新并尝试安装,会导致网站性能下降。所以我们平时可以手动更新(例如使用 WP-CLI),将自动更新关闭。这里有 3 种方法,大家根据自己需求选择。
修改 wp-config.php
编辑 WordPress 根目录下地 wp-config.php 文件,在末尾加入:
/** 关闭WordPress自动更新升级 */ define('AUTOMATIC_UPDATER_DISABLED', true);
这种方法需要编辑 WordPress 的核心文件,在一些服务器——如虚拟主机上实现起来不是很简单,所以不是很推荐。
在主题的 functions.php 中添加钩子
编辑主题的 functions.php 文件,加入:
add_filter( 'automatic_updater_disabled', '__return_true' );
这条语句只是禁止自动安装更新,如果想更进一步,关闭自动检查更新和显示更新提示,还可以加入以下语句:
add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // 关闭核心提示 add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // 关闭插件提示 add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // 关闭主题提示 remove_action('admin_init', '_maybe_update_core'); // 禁止 WordPress 检查更新 remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件 remove_action('admin_init', '_maybe_update_themes'); // 禁止 WordPress 更新主题
或许有人担心更换或更新主题后,修改的代码会消失。为此我依旧建议使用 Snippets 插件来添加代码,无论主题如何变,自定义代码都不受影响。
使用插件
插件是懒人最好的工具,安装 – 设置 – 完事。管理更新的插件有挺多,不过我比较推荐 Easy Updates Manager,由著名的 UpdraftPlus 出品,因此可以对插件质量放心。
Easy Updates Manager 免费版可以控制单个主题或插件的更新行为,也可以全局启动、禁止,如果是小站点,这些功能已经完全能够满足需求。
如果是大型站点或者生产环境,建议 购买 Premium 服务,实用的功能包括:
- 安全模式,确保要更新的内容与网站环境兼容,避免损坏网站;
- 计划更新时间,决定何时安装更新,避免对业务产生大的影响;
- 延迟更新,方便跳过某个版本,等待更适合的时机来更新;
- 自动备份,更新前备份数据,以便快速恢复;
- 导入导出,邮件通知,等等……