向wordpress.org官网提交/发布自己的插件(Plugin Directory)

其他 yan loading.. 2评论 已收录

一个站点的索引量是很重要的一件事,它可以给你带来巨大的流量,网站有了流量也就有了价值。之前博主一直使用百度的站长平台,利用百度链接自动提交的WP插件对博客中的每一篇文章自动推送到百度,加快spider的爬取速度。经过了几年的观测,随着网站的成长,效果也算不错,索引量曲线一直上升,带来的流量也日益增加。

前几日百度发来了一个推送,说目前有个百度熊掌号平台在测试,并且代替了原有的站长搜索平台,也就是说推送内容时接口可能发生了变化。于是博主研究了下熊掌号,官方说熊掌号是集原九大平台(百家号、官方号、站长平台等)于一身的新平台(有些类似微信公众号),可以实时推送或原创推送并在24小时内完成收录,同时内容也会展现在熊掌号中。博主瞬间感觉这远比之前的提交入口好得多,但是由于新平台网络上并没有支持wordpress的插件。所以博主耗费了2天的时间写了一个插件以供大家使用。

由于是第一次写官方插件,虽然编写用了2天但是提交过程用了10天,历经坎坷,最终通过并成功上架。也算体验了下完整的提交发布流程,对于官方团队的态度深受震撼。同时考虑到国内并没有提交官方插件相关的资料或年代久远,因此借机会记录下整个流程以供大家学习。

(先宣传下我的插件:https://wordpress.org/plugins/i3geek-baiduxzh

整体流程如下:

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,否则无法解析到)

所有的图标格式必须是 JPGPNG不能是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中

其中可能要注意的是链接的书写方式:[i3geek](http://www.i3geek.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出初始化的目录结构

(3)可以把相关的文件拷贝到对应的目录中。此时需要注意trunk目录下不能有子目录了,把插件所有工程直接拷贝到trunk目录下即可

(4)添加完后,需要在svn中把新的文件加进去

(5)进行commit提交

此时需要输入名和密码进行验证,就是wordpress.org的用户名和密码(不是邮箱,是用户名

提交成功了就结束了,这时会收到一封邮件,你的插件也会自动出现在商城了!

访问网址:https://wordpress.org/plugins/i3geek-baiduxzh (把i3geek-baiduxzh替换成你的应用名即可)

4 更新插件

更新插件有两种方案:1、更新主干分支 2、建立tag,保留历史版本

# 第一种

主干分支比较简单,直接更新代码,之后重新提交即可。注意修改主php文件中的版本号即可

# 第二种

建立tag可以参考如下步骤:

(1)利用cp功能备份当前版本

(2)对新版本2.0进行编码更新,要记得修改trunk/readme.txt中的Stable Tag为2.0,这样才能到该文件夹中找到你的代码,

(3)添加目录并全部提交

关注<爱上极客>公众号,定期推送精彩内容!

喜欢 (2)

如未说明则本站原创,转载请注明出处:爱上极客 » 向wordpress.org官网提交/发布自己的插件(Plugin Directory)


0
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 大神,继续写啊。期待你的文章
    小白2018-01-12 18:20 回复
  2. 我有强迫症,看到好文就想顶!
    创业网2018-01-14 16:45 (5天前)回复