WordPress的主题、插件、核心升级提醒、自动更新、一键更新等功能非常实用,但唯一不足在于仅限于提交至WordPress.ORG的主题/插件。国外主题审查非常严格,这也造成了部分大神开发的困扰……尝试使用倡萌原先的解决方法失败(WordPress主题制作 之 添加自动检测更新和一键升级功能),之前在修复Azure时已实现WordPress非官方主题/插件能够正常升级的办法,与大家分享。
方案一:使用WPUS插件
一种解决方案是使用INN Studio博主的WP更新服务器插件,使用WPUS可大大简化插件或主题对外发布的步骤和版本管理。但WP酷并未测试成功。
方案二:搭建更新服务器
WP Update Server+Plugin Update Checker+Theme Update Checker完美整合即可实现主题、插件的无缝升级。上传WP Update Server并放置在更新服务器根目录下,确保以 http://yourserver.com/wp-update-server/?action=get_metadata&slug=主题名称 此形式可正常访问。
WP Update Server下载地址:https://github.com/YahnisElsts/wp-update-server/archive/master.zip
- 确保cache 和logs 两个文件夹可写;
- 将更新的主题压缩包(ZIP格式)放置在 packages 文件夹下,且压缩包名必须与主题名称相同;
与WordPress插件整合
Plugin Update Checker下载地址:https://github.com/YahnisElsts/plugin-update-checker/archive/master.zip
将Plugin Update Checker放置在需要开启升级功能的插件目录下,添加以下代码至主文件,path/to/ 、http://example.com 以及 plugin-directory-name 需要自行修改:
require 'path/to/plugin-update-checker/plugin-update-checker.php';
$MyUpdateChecker = PucFactory::buildUpdateChecker(
'http://example.com/wp-update-server/?action=get_metadata&slug=plugin-directory-name', //Metadata URL.
__FILE__, //完整路径到主插件文件
'plugin-directory-name' //插件别名。通常和插件目录名称一样
);
在插件目录下创建 readme.txt 作为查看版本详情的文件。Plugin Update Checker 每12小时检查一次插件更新,不会影响网站加载速度。
与WordPress主题整合
Theme Update Checker下载地址:http://1.shadowcdn.com/files/theme-updates.zip
将Theme Update Checker放置在需要开启升级功能的主题目录下,添加以下代码至functions.php ,path/to/ 、http://example.com 以及theme-directory-name 需要自行修改:
require 'path/to/theme-updates/theme-update-checker.php';
$MyThemeUpdateChecker = new ThemeUpdateChecker(
'theme-directory-name', //主题别名。通常和主题目录名称一样
'http://example.com/wp-update-server/?action=get_metadata&slug=theme-directory-name' //Metadata URL.
);
添加 Details URI 标识至Style.css 文件,作为查看版本详情的文件:
Details URI: http://example.com/my-theme-changelog.html
Theme Update Checker 每12小时检查一次插件更新,不会影响网站加载速度。
更多详细的介绍,请查看官方文档:https://github.com/YahnisElsts/wp-update-server
转载请注明来自WP酷:http://www.mywpku.com/how-to-use-wp-update-server.html
上文提到的方法不便于使用于商业插件,因为路径会被很容易的猜解到的。edd licese和woocommerce software add-on经过我测试,是适合于商业插件升级使用的,