WordPress插件开发须知:如何开发插件并发布到WordPress插件目录

如何开发插件并发布到WordPress插件目录

WordPress 插件目录拥有超过 50,000 个免费插件,是每个 WordPress 用户的城市商城,在这里您可以找到涵盖您下一个网站的所有特性和功能的插件。然而,您可能找不到提供客户明确要求的确切功能的插件。不管喜欢与否,您可能必须启动您最喜欢的文本编辑器并开始编码。但您是否考虑过与整个 WordPress 社区共享您的插件的可能性?

这篇文章的主要目的是与读者一起探索通过 WordPress.org 存储库分发插件的好处。我将快速总结建议和鼓励您遵循的最佳实践,然后我将带您了解计划将插件发布到 WordPress 插件目录时应该了解的 SVN 关键概念。

为什么要使用 WordPress 插件目录?

将插件发布到 WordPress 插件目录的第一个原因是可以免费利用许多出色的工具和服务,例如插件描述、统计信息、活动安装、更新日志、支持论坛等。此外,只要有新版本可用,用户就会收到通知,并可以直接从 WordPress 插件屏幕运行升级。WordPress.org 插件在搜索引擎中的可见性更高,您可以利用强大的媒介来宣传您的身份并提高您作为开发人员的声誉。

如果您不是一位出色的营销人员或没有时间进行营销,WordPress 插件目录可以成为获取免费流量和吸引关注您的插件的好方法。

WordPress 插件目录

WordPress 插件目录

发布插件的另一个好理由是为 WordPress 社区做贡献。WordPress 是免费软件,拥有庞大的社区,免费提供大量主题和插件。发布 WordPress 插件是向所有免费提供其作品的优秀人士表示感谢的最佳方式。

你应该关心什么

请记住,如果您的插件编码不当、您不定期更新插件,或者您不提供快速有效的支持(当然,如果您不是值得信赖的开发人员),那么更高的知名度可能会损害您的声誉。以下是一些需要牢记的关键概念。

编码

关于编码有很多话要说,你会发现很多有用的读物​​。但是如果你是一名 WordPress 开发人员,Codex 就是你的圣经,你应该在开始编码之前阅读插件指南。以下是我个人的关键概念列表:

  • 保持代码可读性。这样其他开发人员就可以了解您的插件的作用,帮助您查找错误,并在您的代码上开发自己的插件。为了促进开发人员之间的协作,WordPress Codex 提供了 WordPress 编码标准,这是所有 WordPress 开发人员的最佳实践的总结。
  • 始终注释您的代码。内联文档是绝不能低估的宝贵资源。它允许任何人快速了解函数的作用、接受哪些参数、返回哪些变量等。在注释中,您可以添加链接、脚本版本和其他描述,这些描述在您或任何其他人编辑脚本时非常有用。我想说 WordPress 用户是一个学习社区,遵守内联文档标准是让人们学习您已知知识的好方法。
  • 尽可能优先使用 WordPress 函数而不是 PHP 函数。WordPress 函数允许您构建安全高效的代码。尤其是当您需要从数据库获取数据时,API 函数可以让您免于构建复杂的查询,而这些查询的安全性很可能不如内置的 WordPress 查询。核心背后有很多优秀的开发人员,他们正在做着我们可以利用的出色工作。

特征

即使你不会因你的工作而获得报酬,你也应该将你的插件视为要出售的产品。你不需要成为一名营销专家:你只需要知道你的插件应该在某种程度上是独一无二的和/或与类似插件区分开来。给你的插件起一个令人难忘且有意义的名字,以及独特的功能,让人们说“我需要它!”。而且,如果你的插件提供的功能已经被其他插件所涵盖,请专注于可访问性和易用性,为用户提供增值服务,使你的产品与竞争对手的产品有明显的区别。

支持

通过插件目录分发的每个插件都有一个特定的论坛,用户可以在此联系您寻求帮助。为用户的问题提供清晰的答案,并帮助他们解决问题。快速而恰当的回复对于建立您作为值得信赖的开发人员的声誉至关重要。考虑任何主题,并获取任何可以帮助您改进插件的信息。

更新

定期更新插件,在需要时推送小的更改,但不要过多。太多的更新可能会让您的用户失望。

许可

WordPress 是在 GNU 通用公共许可证 V2 下发布的,大多数插件也是在相同的 GPL 许可证下发布的。实际上,并不严格要求插件必须在同一许可证下发布,因为任何兼容的许可证都是允许的。无论如何,建议使用 GPLv2(阅读有关 GPL 许可的更多信息)。

为了给这篇文章提供一个可行的示例,我们在 4 个方便的 WordPress 媒体库技巧中剖析的插件已发布到目录中。下载 ExIF 查看器并在文本编辑器中打开其文件,然后返回本文并深入了解插件结构。

插件结构

您的插件将存储在 WordPress.org SVN 存储库中。任何人都可以签出副本,但只有作者才有签入权限。发布插件后,您可以添加新文件,编辑或删除本地计算机上的现有文件,然后将这些更改上传到服务器。所有更改都由 subversion 跟踪,以便您以后可以恢复到旧版本或修订版本。SVN存储库提供四个默认文件夹:

/assets/
/branches/
/tags/
/trunk/
  • 屏幕截图、header 和图标放入 assets
  • trunk 是放置插件文件的目录
  • 代码的不同分支进入 branches
  • 插件发布将存储在 tags

每个插件必须提供至少两个文件:readme.txt 文件和主 PHP 脚本。您也可以选择添加一些要在插件页面上显示的图像(资产)。

插件资源

资产包括插件 header、图标和屏幕截图。插件 header 是您可以在插件页面顶部看到的 JPG 或 PNG 图像。文件名取决于图像的宽度和高度。目前,允许使用以下名称/尺寸:

  • 常规:banner-772×250。(jpg|png)
  • 视网膜:banner-1544×500。(jpg|png)

图标是具有以下名称/尺寸的方形图像:。

  • icon-128×128.(jpg|png)
  • icon-256×256.(jpg|png)
  • icon.svg

您不应在文件名中指定 SVG 尺寸,因为这些图像可以缩放到任意大小。如果您使用 SVG,则必须提供 PNG 图标作为后备。

截图是插件页面内容中显示的图像。允许使用 PNG 和 JPEG 格式,文件名必须小写并遵循以下结构:

  • screenshot-1.(jpg|png)
  • screenshot-2.(jpg|png)

对于每张截图,您都应该在自述文件中提供描述。所有这些图形都应添加到插件本地目录中的 assets 文件夹中(有关插件资产如何工作的更多信息)。

一个优秀的插件页面

吸引人的、一致的资产构成了一个优秀的插件页面

Readme.txt 文件

您应该在主脚本中为您的插件提供一个 readme.txt 文件和适当的标题。 首先,您需要一个包含以下信息的 readme.txt 文件:

  • Plugin name(插件名称
  • Contributors(贡献者): (a list of wordpress.org userid’s)(wordpress.org 用户 ID 列表)
  • Donate link(捐赠链接): http://example.com/
  • Tags(标签): (插件标签)
  • Requires at least: (最低 WordPress 版本)
  • Tested up to: (已测试 WordPress 版本)
  • Stable tag:(插件版本)
  • License: GPLv2 或更高版本(或兼容)
  • License URI: https://www.gnu.org/licenses/gpl-2.0.html
  • Description(描述
  • Installation(安装
  • Screenshots(截图
  • Changelog(更新日志)

屏幕截图部分允许您为想要包含在插件页面中的任何图像添加描述。WordPress.org 提供了插件 readme.txt 文件标准模板,可帮助您构建自述文件。此外,您可以使用自述文件验证器检查文件是否正确。

Readme Validator

Readme Validator 输出自述文件上的注释和警告

插件头注释

标头注释告诉 WordPress 该文件是一个插件。如果您不打算发布插件,则唯一必填字段是插件名称。相反,如果您打算发布插件,则添加的信息越多越好。以下是可用字段的列表:

  • Plugin Name(插件名称):(必填)您的插件名称必须是唯一的。发布前,请在插件目录中搜索同名插件
  • Plugin URI(插件 URI):插件的主页
  • Description(描述):一行插件描述(少于 140 个字符)
  • Version(版本):当前插件版本(必须高于以前的版本)
  • Author(作者):一个或多个作者姓名,以逗号分隔
  • Author URI(作者 URI):作者的主页
  • License(许可证):插件许可证的 slug(即 GPL2)
  • License URI(许可证 URI):许可证全文的链接(即 https://www.gnu.org/licenses/gpl-2.0.html)
  • Text Domain:插件的文本域
  • Domain Path(域路径):在哪里找到翻译文件(请参阅如何使您的插件国际化

以下是最流行的 WordPress 插件之一的 header 注释:

<?php
/**
* @package Akismet
*/
/*
Plugin Name: Akismet Anti-Spam
Plugin URI: https://akismet.com/
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key.
Version: 3.3.2
Author: Automattic
Author URI: https://automattic.com/wordpress-plugins/
License: GPLv2 or later
Text Domain: akismet
*/

发布到 WordPress 插件目录

准备就绪后,注册并提交您的插件

第一个插件版本必须上传以供人工审核

第一个插件版本必须上传以供人工审核

WordPress.org 工作人员将手动审核该插件。此过程可能需要一到十天。如果发现任何问题,您将收到一封电子邮件,说明问题所在以及应采取哪些措施来修复错误。

修订过程可能需要长达十天的时间

修订过程可能需要长达十天的时间

一旦插件获得批准,您将收到一封电子邮件,通知您可以访问 SVN 存储库。

通知您该插件已获批准

一封电子邮件将通知您该插件已获批准

目前,该插件还不能下载,但您可以通过命令行(或任何 SVN 客户端)上传、编辑和删除文件。下图显示了当前的插件页面。

插件页面处于活动状态

插件页面处于活动状态,但插件无法下载

上传插件

我们的首要任务是将插件文件上传到 SVN 存储库,但首先我们需要一个本地文件夹来存储插件文件:

$ mkdir localdir

现在我们可以检查预构建的存储库:

$ svn co https://plugins.svn.wordpress.org/plugin-name path/to/localdir

我们将收到以下回复:

> A    plugin-name/branches
> A    plugin-name/tags
> A    plugin-name/trunk
> Checked out revision 99999999.

A 表示文件夹已从中央仓库添加到本地文件夹,接下来就是将文件添加到本地 /trunk 文件夹,并上传到仓库:

localdir/$ svn add trunk/*

您需要进行身份验证。登录后,您将收到以下响应:

> A    trunk/my-plugin.php
> A    trunk/readme.txt

注意:不要将主插件文件放在主干的子文件夹中,因为这会中断下载。

现在将更改签入到存储库:

localdir/$ svn ci -m 'First plugin version'

以下是最终的回应:

> Adding trunk/my-plugin.php
> Adding trunk/readme.txt
> Transmitting file data .
> Committed revision 9999999.

ExIF Viewer 本地副本的文件结构

ExIF Viewer 本地副本的文件结构

接下来,我们必须添加插件资产:

localdir/$ svn add assets/*

然后再次检查更改:

localdir/$ svn ci -m 'Assets upload'

就这样!跳转到您的插件页面,开始推广您的作品!

ExIF Viewer插件

ExIF Viewer插件的最后一页

发布新版本

在发布下一个版本之前,您必须记得更新 trunk/readme.txt 文件中的 Stable Tag 字段和插件头注释中的版本号。当新版本准备好发布时,将您的文件复制到 /tags 的子文件夹,并将子文件夹的名称设置为版本号(即 1.0.1):

localdir/$ svn cp trunk tags/1.0.1
> A tags/1.0.1

然后检查更改:

localdir/$ svn ci -m "tagging version 1.0.1"
> Adding         tags/1.0.1
> Adding         tags/1.0.1/my-plugin.php
> Adding         tags/1.0.1/readme.txt
> Committed revision 999999.

就这样!新版本上线了。

编辑文件

有时,您可能需要进行不需要新版本的小更改。首先,更新存储库的本地副本:

localdir/$ svn up
> At revision 999999.

然后编辑文件并检查更改:

localdir$ svn stat
> M       trunk/readme.txt

M 表示这些文件已被修改。接下来,您可以看到两个版本之间发生了什么变化:

localdir$ svn diff

最后,检查中央存储库的更改:

localdir$ svn ci -m "minor changes"
> Sending trunk/readme.txt
> Transmitting file data .
> Committed revision 999999.

概括

无论您决定发布商业插件的精简版本,还是发布插件以贡献给社区,WordPress.org 目录都是分发您的作品的最佳场所。它为您提供广泛的曝光机会,并提供许多专业工具来分发和推广您的插件。

评论留言