如果你的 WordPress 搭建在国内服务器上,那你肯定遇到过 WordPress 更新失败的问题。我在阿里云上实测下载官方安装包速度不过每秒十几 k。那么除了官方繁琐的“三步”升级法(手动覆盖文件)外还有其他更高效的更新方法吗?
方法一:WP-CLI ( 肖先生用这种方法,很好用)
WP-CLI 是官方推出的一款 WordPress 命令行工具。无需浏览器,你就可以实现快速安装、更新主题、配置站点、搜索替换等几乎所有可以想到的功能。
如何安装 WP-CLI 这里不做说明,请移步官方安装指南: https://make.wordpress.org/cli/handbook/installing/
假如你已经安装好了 WP-CLI,那么首先通过 wp core check-update 命令获取新版的安装包地址,然后通过自己的途径下载并放到服务器上。
1
2
3
4
5
6
|
$ wp core check–update
+————–+——————–+————————————————————————————————–+
| version | update_type | package_url |
+————–+——————–+————————————————————————————————–+
| 4.9 | major | https://downloads.wordpress.org/release/zh_CN/wordpress-4.9.zip |
+————–+——————–+————————————————————————————————–+
|
最后执行 wp core update path/to/zip/file(替换成你自己的路径) 命令升级 WordPress,输出的内容和你通过网页升级类似。
1
2
3
4
5
6
7
|
$ wp core update path/to/zip/file
Starting update...
正在解压缩升级文件...
...
Cleaning up files...
No files found that need cleaned up.
Success: WordPress updated successfully.
|
安装过程中,可能会自动下载语言包,不过语言包很小,没什么影响。这样你就成功升级了 WordPress~
方法二:修改 WordPress 升级代码
或者我们可以修改 WordPress 升级代码逻辑,如果下载的文件是更新包,就直接指向本地文件,而不要远程下载。
将升级包下载到本地,编辑 /wp-admin/includes/class-wp-upgrader.php 文件,搜索
1
|
$download_file = download_url($package);
|
将它替换为:
1
2
3
4
5
6
7
8
|
// 如果想知道原来的下载地址,可以取消注释下面这行,然后在网页后台点更新获得。
// exit($package);
if ($package == ‘https://downloads.wordpress.org/release/zh_CN/wordpress-4.9.zip’) {
$download_file = ‘path/to/zip/file’;
} else {
$download_file = download_url($package);
}
|
方法三:使用代理服务器
打开 wp-config.php 文件,在底部增加以下代码:
1
2
|
define(‘WP_PROXY_HOST’, ‘us.centos.bz’);
define(‘WP_PROXY_PORT’, ‘31281’);
|
* 该示例代理服务器来源于网络,我测试升级失败,我是用的第二种方法成功的。