让存放在GitHub上的Wordpress主题和插件支持自动更新

日前见懿古今兄分享了他的主题增加自动更新的办法。但他的主题是放在自己空间上的,自动更新这回事儿对主题的使用者有意义,对主题的创作者本身却没卵用。每次手动修改服务器的版本文件,手动打包上传实在是太专门利人毫不利己了,这不符合我的审美。但如果能为存放在GitHub上的代码增加个自动升级可以保证本地调试代码、Git代码以及服务器上使用的代码一致。没错,大多数时候我连上传文件到服务器这事儿都懒得动手。
于是顺藤摸瓜搜了下存放在GitHub上的代码是不是有什么自动升级的手段。还真被我找到了。

使用方法还蛮简单的。
1.下载GitHub Updater插件,上传安装。

该插件有瑕疵。第一是不在WP的官方插件上;第二是功能过于强大,80%的机能都用不到。
我知道很多人喜欢“免插件”,但这个插件还挺有意义的——有好多个人开发者不愿意忍受WP官方对主题和插件的严苛审核而把自己的作品挂在GitHub上。对于装了这些主题插件的人来说,GitHub Updater是个福音,当然前提是开发者得支持这个插件。

2.修改你放在GitHub上的主题/插件。

主题的话,要在style.css里加上一行:

GitHub Theme URI: lifishake/bluefly

或者

GitHub Theme URI: https://github.com/lifishake/bluefly

lifishake是你的用户名,bluefly是你的工程(主题)名。
如果要进行自动更新的分支不是master的话,要另增加一行

GitHub Branch:     branchx

默认的master就不必了。

插件同理,在插件的同名php描述里增加

GitHub Plugin URI: lifishake/apip

或者

GitHub Plugin URI: https://github.com/lifishake/apip

即可。

3.Release主题或者插件。
用Git客户端Release一个版本。并给这个版本打一个版本号。当然想让作品正常升级的话,版本号必须是正常增长的。

$ git tag v1.0.0
$ git push origin v1.0.0

GitHub主页上也可以进行Release操作,不过用Git的人一般都没这么笨的吧。

好了,这样就OK了。以后每次更新完毕就再也不用担心正在使用的版本跟GitHub上的版本不一致了。看看效果,是不是跟真的一样?
2016-4-29-Git_theme_update_support
总之这个方案的缺点是主题或者插件的用户需要另外装一个插件。反正麻烦的又不是作者自己,对于姜太公钓鱼式的开发者来说,已经是很不错的解决方案了。

哦对了,顺便说一下,我把主题和N合一插件放在GitHub上的原因,只是为了遵守GPL,一点儿没有要技术输出的意思。所以想抄的随便抄,代码对错自己理解,别指望我提供技术支持。

已有13条评论

  1. 能自己做主题真是太羡慕了

    1. 其实一点儿不难。php语法非常宽松,WP提供的函数都有详细的说明。至于css,我的css也不怎么高明,玩着学呗。

  2. 好像是一个非常牛逼的事情。可惜我不做主题,所以不明觉厉的!

    1. 匠而已,谈不上师。我玩php属于玩票,只是代码的搬运工。

  3. 就是要用主题的人再加个插件,不然还真是很非常不错。
    先了解下GitHub Updater插件

    1. 挺麻烦的,没搞清原理,不然就直接抄进插件里了。

  4. 我也就是一个业余折腾一下WordPress而已,所以连GitHub都没有用过,感觉我就像是博主所说的对于姜太公钓鱼式的开发者,所以那时候只分享了自动更新的办法,但是没有添加到主题中,愿不愿意升级,想不想升级,升级难不难,这些都不是我这个业余者所要考虑的,一切随缘就好。

    1. 我看你每次修改和新功能都做大量的说明,就感觉应该有很多使用者的样子。
      我主题不发布就是不愿意对用户负责。

      1. 使用的倒是有一些博主,不过他们都喜欢修改主题,或者去除版权,所以我每次升级后都顺手发布一下,更不更新就看他们自己了,既然是免费的,就不想负责太多

  5. 我也把主题放 GitHub 上了,按这个方法以后升级就简单了

    1. 好,我试试找到你ID,多交流。

        1. 有用就好。测试发现打包那一步好像不做也可以。

  6. 都是喜欢捣鼓的同学,痛苦并快乐着

  7. github试用了一下,感觉不如googlecode好用。索性现在不用了。

    1. googlecode不是不好连吗。我只有玩业余向的php的时候才用github,单位都是自己建的服务器。

  8. 以前也是插件恐惧症,追求0插件。后来觉得一些很好用的插件的加入,比自己死气白咧写半天效率高很多。不过随便插入一堆css、js还不让改的就另说了

    1. 插入css和js的,我会先搞清楚插件的作用域,然后加wp_print_scripts和wp_print_styles的filter,限定css和js只在is_XXX的时候可以用。

    1. 宅男的体力应该都不好吧。

你好,新朋友。留言前请先填写昵称邮箱