WordPress自动安装本地升级包

自从安装了WordPress,升级工作一直不太顺利。本地搭建的LAMP环境测试没问题,但虚拟空间真刀真枪的时候就每每提示自动升级失败。试过手动升级,小心地覆盖各个文件夹时候心揪的稀碎啊,特别是WordPress不解风情地老推送升级包过来。

社区讨论最多升级失败都归咎于文件夹权限没设置好。但我这个调来调去发现就是虚拟主机访问WordPress资源站点,耽搁的太久,超时带来的副作用。

所以自己走VPN下载升级包是在所难免了。不过比起手动升级,把升级包下载到站点目录,然后让WordPress自动升级还是能省不少心,也就是自动安装本地升级包。唯一要做的就是稍微hack一下升级代码。以升级WordPress 4.4为例,修改代码示例:

// .wp-adminincludesclass-wp-upgrader.php

public function download_package( $package ) {
  ...
  //d:\www\root\xxxwordpress-4.4-zh_CN.zip是升级包传到虚拟主机后的绝对路径
  if ($package == "https://downloads.wordpress.org/release/zh_CN/wordpress-4.4.zip")
    $download_file = "d:\wwwroot\xxx\wordpress-4.4-zh_CN.zip";
  else
    $download_file = download_url($package);
  ...
}