• 欢迎访问窗外天空网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 本站兼容IE9+,谷歌Chrome,火狐Firefox等主流浏览器

Updates.php给自己的主题添加在线更新功能

Wordpress nixon li 1156次浏览 0个评论

利用第三方类为主题提供在线更新安装服务,免去了下载主题包的麻烦。

Updates.php给自己的主题添加在线更新功能

前言

使用过WordPress的都知道WordPress默认主题都有在线更新的功能,但是我们一般使用的主题却木有,在对欲思主题的二次开发的时候,博猪就用到了一个自动更新的功能,在这里和大家说说吧

程序简介

theme-update-check是国外的牛人开发的一个终于WordPress主题更新的PHP类,类似于我们熟悉的裁图工具timthumb.php,我们可以很方便的将他集成到我们的主题里面,实现主题的自动更新服务。

文件说明

首先在文末下载文件包,解压出来是三个文件,updates.php和info.json。
首先打开info.json,你会发现是类似下面的代码

{
"version" : "2.0",
"details_url" : "http://git.oschina.net/yunluo/yusi",
"download_url" : "http://git.oschina.net/yunluo/yusi/repository/archive?ref=master"
}

当然,这个是我自己主题的文件,应该都能看懂吧。
主要就三个参数
第一个是版本号
第二个是主题发布页
第三个是主题下载直链,就是输入这个链接,浏览器自动下载主题的那种。

再看一下updates.php文件,其他你不需要看,你只需要把主题名字(别名)和info.json文件的路径填写进去就好了,其他就不用管了。
然后在主题的functions.php写入下面代码

//主题自动更新服务
require 'updates.php';
$example_update_checker = new ThemeUpdateChecker(
'yusi',
'info.json文件路径'//此路径可以开发者自己定义,保证info.json文件能够公开访问以及不能被除开发者之外的人修改即可
);

文件部署

首先将updates.php文件放在主题根目录,然后将info.json放在主题开发者自己的网站根目录里面,当然,其实并不一定是根目录,放在哪里,然后updates.php文件里面的路径就是这个,info.json文件必须保证能够公开访问,然后over了!

推送更新

程序是将主题的开发者留下的meta文件和主题样式style..css里面的版本号进行比对,如果主题开发者的info.json文件里面的版本 号比使用者的主题文件style.css里面的版本号大,那么就会在WordPress后台的更新工具进行更新提醒,和正常的WordPress更新,插 件更新完全一样,如果你选择更新,就自动从主题直链在线安装主题。

注意事项

在使用中,博猪发现了一些小问题,在这里也顺便说一下。
最重要的是保证一致性。保证自动更新里面的主题名字和你使用的主题名字一样,比如我目前使用的主题名字叫yusi,对,这里说的是主题文件夹名字,而不是 其他中文名字,需要保持一致的地方有info.json,functions.php中的初始化函数代码,updates.php文件这四个地方,另外下 载链接所下载的主题包文件名字也必须是一样的。
另外有很多朋友和博猪一样喜欢使用github,gitcafe,oschina,coding等等使用GIT版本控制系统的代码托管网站,如果采用这里 提供的直链下载的话,你的项目名字也必须和主题名字一样,比如我之前的项目名字叫yusi-theme,结果自动更新之后主题文件夹多了一个名字叫 yusi-theme的主题文件夹。好吧,明白怎么回事了吧!

后语

使用这种自动更新功能可以给主题使用者更新鲜的体验以及免去了多次下载的麻烦,自动检查更新的功能最好弄一个开关,让用户选择是否启用,因为主题更 新会全部覆盖主题文件,如果使用者在主题里面自己添加了什么代码,最后都可能被覆盖掉,所以,主题开发者尽量给主题多留一些框框,尽量让使用者在主题设置 里面设置,而不是直接在主题里面。

相关链接

文件下载


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Updates.php给自己的主题添加在线更新功能
喜欢 (1)
[]
分享 (0)
关于作者:
咳...咳...
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址