给WordPress主题添加自动检测更新和一键升级功能

 2016-10-26 15:20

最近一直在制作wordpress主题包,但发现上传一直是个困难。在正常情况下,WP有一个自己的平台,但由于我的主题在测试阶段,而且不准备放置在平台上,所以上传新主题包覆盖旧主题一直不是太友好。搜索了下,发现众多功能中,下面这个功能还是蛮好的,于是借鉴过来。

准备工作

下载所需文件

设置远程检测和更新服务

  1. 在你的主机空间上创建一个文件夹,比如我在www.xxx.com的根目录下创建一个名为themes的文件夹。

  2. 将刚才下载的文件解压,打开里面的 details.txt ,填写新版主题的更新内容和升级方法等等信息,保存。

将新版主题的zip压缩包(比如 theme_aaa.zip)和 details.txt 一起上传到刚才创建目录中,那么它们对应的访问地址就分别为:

http://www.xxx.com/themes/theme_aaa.zip
http://www.xxx.com/themes/details.txt

打开 info.json ,按照里面的提示填写信息,样例如下:

{
    "version" : "1.1", //主题版本号
    "details_url" : "http://www.xxx.com/themes/details.txt",  //details.txt网址
    "download_url" : "http://www.xxx.com/themes/theme_aaa.zip"  //主题下载网址
}

然后将 info.json 也上传到上面的 themes 文件夹中,它的访问地址为:

http://www.xxx.com/themes/info.json

为主题添加检测功能

  1. 把解压出来的theme-updates文件夹连同里面的theme-update-checker.php一起复制到现用主题的根目录里,比如我的主题 Htwo的根目录为 wp-content/themes/Htwo,那么现在 theme-updates 的目录为wp-content/themes/Htwo/theme-updates;

  2. 打开主题的functions.php文件,在头部<?php的下面添加下面的代码:

//检测主题更新 wpdaxue.com
require_once(TEMPLATEPATH . '/theme-updates/theme-update-checker.php'); 
    $wpdaxue_update_checker = new ThemeUpdateChecker(
    'theme_aaa', //主题名字
    'http://www.xxx.com/themes/info.json'  //info.json 的访问地址
);

注意看,第4行填写的是主题的名字(也就是你在主题的style.css注释的主题名字),第6行填写的是前面上传的 info.json 访问地址。

到这里,主题的自动检测功能已经添加好。

自动检测和更新演示

打开目前正在使用的theme_aaa主题的style.css 文件,一般都有主题信息:

/*
Theme Name:theme_aaa
Author:紫铜炉
Author URI:http://www.paipk.com;
Description:这是由拍拍看科技设计并制作的主题
Version:1.0
*/

Theme Name 的 theme_aaa和刚才在 functions.php 添加的一致,目前版本为 Version:1.0 ,而 info.json 中为 “version” : “1.1” ,高于正在使用的版本,就会触发升级提示,类似下图所示(图中主题是Htwo_pro,不是这里说的 theme_aaa ,但是效果是类似的):

在后台–外观-主题下可以看到提示:

给WordPress主题添加自动检测更新和一键升级功能

点击顶部更新,可以看到提示:

给WordPress主题添加自动检测更新和一键升级功能

以后主题更新所需的操作

  1. 更新主题的 style.css 的版本号Version ,将主题包压缩为.zip格式,上传到前面创建的 themes 文件夹中;

  2. 更新 details.txt 里面的内容,然后上传到同目录;

  3. 更新 info.json 中的 版本号 和 新版 主题下载网址 ,然后上传到同目录。

到此,就可以看到升级提示啦!

文章来自己wordpress大学

作者头像

作者:摘录

文章来自网络!欢迎大家来稿

 发表评论: