借助Github 为第三方WordPress 主题/插件添加“自动更新”功能

WordPress 官方的主题/插件依赖与官方服务器可以实现后台自动更新或升级。如果你的作品托管到Github 上则可以通过下面几个projects 方便实现WordPress 主题/插件添加“更新升级”功能——就像官方的那样自动升级。

WordPress-GitHub-Plugin-Updater 简介

WordPress-GitHub-Plugin-Updater 是一个WordPress 的第三方类。如果你的WordPress 插件是托管到Github 上的,借助这个类可以实现类似WordPress 官方的自动更新升级机制。难得可贵的是,这个类不仅仅支持公共仓库(public repositories),也支持私有仓库的项目(private repositories)——当然前提你是GitHub 的付费用户。支持私有仓库意味着你可以将你的收费插件托管到Github 上而不必担心文件泄露的问题。

WordPress-GitHub-Plugin-Updater 使用方法

Github 主页:https://github.com/jkudish/WordPress-GitHub-Plugin-Updater

下载zip 压缩包解压后安装WordPress后台上,项目本身就是一个插件,你可以安装来查看是如何的运作的。

要集成到你的插件的话,将updater.php 放到你的插件目录下,然后在插件主文件写入下面的代码,注意相关文件名称要修改为你的插件的:

add_action( 'init', 'github_plugin_updater_test_init' ); function github_plugin_updater_test_init() {   include_once 'updater.php';   define( 'WP_GITHUB_FORCE_UPDATE', true );   if (is_admin()) { // note the use of is_admin() to double check that this is happening in the admin $config = array( 'slug' => plugin_basename(__FILE__), // this is the slug of your plugin 'proper_folder_name' => 'plugin-name', // this is the name of the folder your plugin lives in 'api_url' => 'https://api.github.com/repos/username/repository-name', // the github API url of your github repo 'raw_url' => 'https://raw.github.com/username/repository-name/master', // the github raw url of your github repo 'github_url' => 'https://github.com/username/repository-name', // the github url of your github repo 'zip_url' => 'https://github.com/username/repository-name/zipball/master', // the zip url of the github repo 'sslverify' => true // wether WP should check the validity of the SSL cert when getting an update, see https://github.com/jkudish/WordPress-GitHub-Plugin-Updater/issues/2 and https://github.com/jkudish/WordPress-GitHub-Plugin-Updater/issues/4 for details 'requires' => '3.0', // which version of WordPress does your plugin require? 'tested' => '3.3', // which version of WordPress is your plugin tested up to? 'readme' => 'README.md', // which file to use as the readme for the version number 'access_token' => '', // Access private repositories by authorizing under Appearance > Github Updates when this example plugin is installed ); new WP_GitHub_Updater($config); }   }

access_token 这个参数是私有仓库才要的,如果是公开项目不必填写之。私有项目必须按照下面的步骤去获取Github 应用的Client ID 与Client Secret 激活之。

配置的最后一步是在Github 的readme.md 文件任意一行添加如下代码识别最新版本:

~Current Version:1.4~

如果填写正确,那么后台会适时提示更新,如下图:

其他类似的projects

不过经过Jeff 的测试,目前这个类的最新版(写本文时候是1.6)尚不稳定,会有报错信息。官方readme.md 文件上也写着1.6 (in development)。如果喜欢,可以下载旧版本使用。

或者采用其他类似功能的projects:

Plugin-Update

该project 在tutsplus上有详细介绍(地址), Jeff 本人没有深入研究。

github-updater

一个插件,支持托管在Github 上的公开仓库的WordPress 主题或插件的更新,你所要做的只要在主题或插件的相关文件添加类似的代码:

GitHub Theme URI: afragen/test-child GitHub Theme URI: https://github.com/afragen/test-child or GitHub Plugin URI: afragen/github-updater GitHub Plugin URI: https://github.com/afragen/github-updater

Theme-Updater

跟上面的插件差不多,不过单单适合于主题,你额外要做的是添加类似下面的代码:

Github Theme URI: https://github.com/username/repo

后记

看完本文后你可能会发现有些标题党的味道,因为本文更多是介绍“插件”的升级。哎哎我必须承认之,因为就目前Jeff 收集到的资料都是倾向于插件的。

老外也开发过不少projects 可以实现自托管(selfhost)的第三方主题/插件(免费或商业)实现类似WordPress 官方的升级机制。但这不是本文的讨论范围。

顺便一提:Jeff 开发的主题的自动更新机制不是采用上面某个的,也不是采用在国内wp圈子广为转载的某种通过json直链文件那种。至于是什么,当然是机密~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏上善若水

P003PHP之用户页面注册信息填写页面[转]

php用户注册页面填写信息完整实例,内容包括邮箱自动匹配、密码强度验证以及防止表单重复等.

16530
来自专栏架构师之路

微信钱包中58到家首页为什么这么快

原文标题《前后端分离和模块化-58到家微信首页重构之路》【深度前端干货】 微信钱包内的58到家全新首页已经上线,感兴趣的同学们可以在微信中打开“我的->钱包->...

33070
来自专栏web前端教室

Redux基本用法,为周日的先行者课程准备着。

众所周知,React只是一个View层而已,它不是一个完整的前端解决方案。只是给出了页面组件化的解决思路,但组件之间如何沟通?代码之间的结构?它并没有给出更多的...

21070
来自专栏企鹅号快讯

Stimulus:让web应用在移动端达到原生体验

【IT168 资讯】很多开发者一年来通过Basecamp写了很多JavaScript,但是并没有用它来创建现代意义上的“JavaScript应用程序”。所有的应...

30480
来自专栏iOSDevLog

Xcode 10

Xcode 10包含为所有Apple平台创建出色应用所需的一切。现在Xcode和Instruments在macOS Mojave上的新Dark Mode中看起来...

15820
来自专栏Golang语言社区

转-liteIDE 快捷键改装

LiteIDE改装 最近一直都在使用liteIDE做开发。公司的项目很紧张,但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。 IDE上...

51850
来自专栏养码场

一个支付宝竟使用了30多个开源软件

大家都会使用支付宝,在支付宝中的“设置”选项中,有一项为“关于”,在版权信息中显示了所有使用的开源软件信息。不看不知道,一看吓一跳,原来支付宝居然使用了30多个...

20720
来自专栏性能与架构

Twitter工程师聊JS

本文是Twitter软件工程师Bonnie Eisenman对JS现状的看法和对开发者的一点建议 01 关于框架 框架的目标是减少繁琐的工作,是基础的脚手架...

35460
来自专栏HTML5学堂

CSS检查工具-CKStyle

HTML5学堂:CSS代码存在压缩工具、检查工具以及重排属性的工具。今天推荐给大家CKStyle这个工具,顺便也来看看其他的一些工具。 各类CSS检查工具 首先...

41260
来自专栏互联网杂技

AngularJS 对SEO是硬伤

在过去的2014年, 前端开发因为大量前端框架的出现开发模式有了巨大的改变,MVC这个web服务器端开发的模式,由于angularjs们的出现,变成了前端MVV...

83870

扫码关注云+社区

领取腾讯云代金券