整体流程如下:
1. 在WordPress.org注册一个账户(建议不要用QQ邮箱,原因下面会说)
2. 提交插件进行人工审核
3. 审核中出现的问题进行修改,并再次提交审核(可能要多次审核,直到没问题为止)
4. 通过后便会分配svn仓库
5. 上传插件的代码和描述文件(如banner、icon、截图等)到svn仓库中
6. svn上传成功后,自动展现在官方商城中
目录
1 准备工作
- 已编写好的插件压缩包。本博客主要是针对发布流程,不是开发流程,因此不赘述开发细节了,有兴趣的朋友可以留言,以后整理出文章分享。
- 注册WordPress.org账户。注意wordpress.org和wordpress.com是两个不同的组织,账户不同。而且建议不要使用QQ邮箱,推荐Gmail,使用国内邮箱虽然可以接收到邮件,但是发出的邮件对方收不到(可能被当做spam)反正对方看不到,就因为这样我白白等了一周后换了邮箱才联系上。
2 审核插件
上传网址:https://wordpress.org/plugins/developers/add/
一个插件只能上传一次,一旦上传完自动进入审核状态,审核分为初审和复审。初审一般3个工作日左右,复审根据问题的严重性和插件的复杂性时间不同,官方说7个工作日内,但是小问题的话一般第二天就会给你反馈,效率真是很赞。(提交时可以看到排队的数量,我当时是有630多个处于审核,15个处于初审状态)
注:上传后切忌勿重复传,比如新创建账号再传是不允许的。若有信息错了或有问题,一切通过邮件的方式和官方团队联系,都会很快收到答复并解决。除了初审之外均是通过邮件沟通,新的代码提交也在附件或网址里提供。(再提一句,别用QQ邮箱,当时我回复后,对方没收到 ,我按照说明傻傻的等了7个工作日才问的,结果对方一脸懵逼,我就只好换gmail邮箱了,结果2天就完成了审核)
这里的体验不是很好,网站上看不到进度条和反馈,一切都是通过邮件人工操作,难道这样的工作量不大吗?
但是团队的人员效率很高,很意外,初审3天左右得到了反馈,内容很详细。看得出来,官方人员是把你的代码很仔细的分析了一遍,所有出现的问题点、说明以及解决方案都列了出来。比如我的问题(可能大部分人都存在的问题):提交表单时一定要有nonce验证,对所有提交的数据都要做过滤,所有的方法名要保证唯一避免冲突,所有可能隐含的问题,甚至调用了第三方API都要说明。很认真严格,建议开发者咨询阅读手册。(目前在国内是没有见到过类似的情况,往往都是简单的一句话就回绝了)
总的来说,虽然体验上不是很友好。但是从人工的效率和审核结果来看,他们除了本职工作外,每天要审核那么多各种各样的代码,比如我的代码大概1000行左右,能仔细看完并认真指出问题,真的十分厉害,深受震撼。
在这一阶段是不断和官方团队交互的过程,对方会对你的代码提出各自质疑,不单单是编码问题甚至包括你插件的意义?为什么调用第三方接口?如果不用会怎样?等等。总之要不断修改并完善,仔细解答每一个问题,若对方认可了那么便可以通过了。一般都需要个一周左右时间吧,快的可能3天左右。
(对了,注意时差,官方团队在加利福尼亚,比北京时间晚16小时)
3 上传插件
若审核通过,便会发送邮件告知你SVN仓库的地址,此时,恭喜你!已经完成了插件开发,只需上传后便自动展现给大家并可供下载了!(此处没有审核步骤)
由于官方对于插件结构都是约定好的,并进行自动的解析,因此博主主要介绍下上传的内容以及各项要求,否则你的插件将无法正常展现和使用。
3.1 添加插件图片(可选)
在默认的SVN仓库中包含assets文件夹(具体各文件的作用后文会介绍),将顶部Banner图片、图标Icon和使用截图放至该文件夹中,可以使插件更好的展现。(注意不要放入trunk或tags目录中的assets,否则无法解析到)
所有的图标格式必须是 JPG 或 PNG (不能是GIF)
由于站点的静态文件都采用了CDN和缓存技术,因此在上传后可能会出现延迟展示
那么,请将以下这些图片上传至SVN仓库的/assets目录中(不要再创建子目录了)
# 顶部Banner
Banner的要求是772*250,对于高清版的是1544*500。另外考虑一些国家如阿拉伯的语言是从右到左的,所有还需要有对应的Right-To-Left (RTL)版本。
具体的命名格式如下:
- Normal Banner: banner-772×250.(jpg|png)
- Normal Banner (RTL): banner-772×250-rtl.(jpg|png)
- High-DPI (Retina): banner-1544×500.(jpg|png)
- High-DPI (Retina RTL): banner-1544×500-rtl.(jpg|png)
可以没有High-DPI和RTL,都会默认显示772*250的图片,但是High-DPI格式的只有在分辨率高时会启用,否则都显示772*250大小图片。
# 图标ICONS
这里可以上传JPG,PNG也可以上传SVG格式的图标。
虽然SVG的向量图标格式更好,但是也要上传JPG或者PNG图标的一种,否则在旧的浏览器或Facebook中就无法展示了。
若没有上传图标,那么就会随机显示图片。
具体的命名格式如下:
- Normal: icon-128×128.(png|jpg)
- High-DPI (Retina): icon-256×256.(png|jpg)
- SVG: icon.svg
# 截图
为主要的功能页面进行截图,并把截图文件标序号保存在assets目录中。后续在Readme.txt文件中进行逐行描述(后面会具体说),系统会自动解析成对应的图片题目。
具体的命名格式如下:
- screenshot-1.(png|jpg)
- screenshot-2.(png|jpg)
- …
更多的可以参考官网:How Your Plugin Assets Work
3.2 完善详情页(readme.txt)
为了让大家更清楚的了解你的插件,更好的使用插件,每个插件都应该有一个Readme文件,它将被系统自动解析并展示在插件详情页面。
Readme采用了Markdown的格式,并保存在readme.txt中。
其中可能要注意的是链接的书写方式:[anspoon](https://www.anspoon.com)
Readme.txt头部信息:
- Contributors:贡献人,即代码的开发者,可以是一位也可以是多位。要求写wordpress.org中的用户名,因为会添加跳转到个人页面的链接,同时在你的个人信息中也会展示出开发的插件
- Donate link:捐赠链接,如果不写就不会显示了
- Tags:插件的标签、关键字
- Requires at least:需要的最低wordpress版本
- Tested up to:测试通过的wordpress版本
- Stable tag:(重要)用来表示插件的稳定版本以供用户下载使用。填写”trunk”或空则采用主干目录,否则使用tags下的版本号子目录中的代码。
- 介绍:在下方最后写上简单的介绍,150字左右
更多的内容,如:描述、更新日志、截图、问答等可以参考官方案例:How Your Readme.txt Works
在编写完Readme文件后,可以通过在线校验,对格式进行校验。
3.3 SVN的目录结构
SVN默认会初始化创建4个目录:
- /assets/:存放静态文件,如Banner、Icon等
- /branches/:开发分支
- /tags/:各版本
- /trunk/:主干分支
下面将逐一介绍:
# Trunk
/trunk,主干目录,是插件的主要目录。该目录下存储的是当前最新的版本代码(可能是Beta版),是开发者的最新版本。最好保证trunk文件夹中的是可用版本,即用户在商店下载到的版本(当然有可能是测试版,非最终版)。对于简单的插件来说,只有主干的一个版本,没有测试版等也可以的。
# Tags
/tags,用来标记插件的一些重要时间点、或者重要版本。通常用不同的版本号创建子目录,并把该版本的代码放到对应目录中。比如 /tags/1.0。并不是所有的插件都必须使用,通常用来存储或管理版本。
# Branches
/branches,用来存储插件的代码分支,比如开发分支、测试分支等。正常的系统通常只用主干分支,不会使用其他分支的代码。
# Assets
用来存储静态文件,上文已经详细介绍了。
官方解析目录步骤:
首先,在/trunk目录中找到readme.txt文件,通过Stable Tag获得稳定版本的版本号。若没有Stable Tag或其内容是”trunk”,则使用主干/trunk文件夹的代码;若定义了就使用tags目录下对应版本的代码,比如内容是“1.2.3”那么就使用/tags/1.2.3文件夹下的代码。
若使用了分支的代码,那么接下来所有的信息都将从该分支读取,包括Readme中其余内容,如:开发者、捐献地址等。如果不存在该目录或错误的版本号或目录为空,那都将从trunk目录中查找。
注意:
其余的信息主要是通过插件的主php文件中获得,比如插件的URI、版本号等信息。不是从Readme中读取,所以修改时不要修改错误。
Stable Tag版本和插件的版本并不一致。Stable Tag只负责查找代码时的目录,比如Stable Tag设置为1.4 那么代码将从/tags/1.4中获取,若其内主php文件中标注插件版本为1.3 那么最后系统展现出的版本仍旧是1.3。
3.4 上传代码
(1)本地创建一个文件夹,用来存放svn的内容
(2)check out出初始化的目录结构
$ svn co https://plugins.svn.wordpress.org/your-plugin-name my-local-dir
(3)可以把相关的文件拷贝到对应的目录中。此时需要注意trunk目录下不能有子目录了,把插件所有工程直接拷贝到trunk目录下即可
(4)添加完后,需要在svn中把新的文件加进去
$ svn add trunk/*
(5)进行commit提交
$ svn ci -m 'Adding first version of my plugin'
此时需要输入名和密码进行验证,就是wordpress.org的用户名和密码(不是邮箱,是用户名)
提交成功了就结束了,这时会收到一封邮件,你的插件也会自动出现在商城了!
访问网址:https://wordpress.org/plugins/highlightcode(把highlightcode 替换成你的应用名即可)
4 更新插件
更新插件有两种方案:1、更新主干分支 2、建立tag,保留历史版本
# 第一种
主干分支比较简单,直接更新代码,之后重新提交即可。注意修改主php文件中的版本号即可
# 第二种
建立tag可以参考如下步骤:
(1)利用cp功能备份当前版本
$ svn cp trunk tags/2.0
(2)对新版本2.0进行编码更新,要记得修改trunk/readme.txt
中的Stable Tag为2.0,这样才能到该文件夹中找到你的代码,
(3)添加目录并全部提交
$ svn ci -m "tagging version 2.0"