详细插件指南

上次更新日期:2024年3月15日
添加仅块插件?请阅读区块特定指南

插件目录

WordPress插件目录的目标是为所有WordPres用户(从非技术用户到开发人员)提供一个安全的地方,以下载符合WordPress项目目标的插件。

为此,我们希望确保开发人员提交目录插件的过程简单透明。作为我们不断努力使插件目录包含过程更加透明的一部分,我们创建了一个开发人员指南列表。我们努力为所有开发人员创造一个公平的竞争环境。

如果您有改进指南的建议,或对其有疑问,请发送电子邮件插件@wordpress.org让我们知道。

开发商期望

开发人员、所有具有提交访问权限的用户以及所有正式支持插件的用户都应遵守以下准则:

违规行为可能导致插件或插件数据(对于先前批准的插件)从目录中删除,直到问题得到解决。插件数据(如用户评论和代码)可能无法恢复,这取决于违规的性质和同行审查的结果。重复违规可能导致所有作者的插件被删除,开发人员被禁止在WordPress.org上托管插件。

插件开发人员有责任确保他们在WordPress.org上的联系信息是最新和准确的,以便他们收到插件团队的所有通知。自动回复和发送到支持系统的电子邮件是不允许的,因为它们在历史上阻止人们及时处理电子邮件。

目录中的所有代码都应尽可能安全。安全性是插件开发人员的最终责任,插件目录尽我们最大的能力来实现这一点。如果发现插件存在安全问题,它将被关闭,直到问题得到解决。在极端情况下,插件可能会由WordPress安全团队进行更新,并为了公众的安全进行传播。

虽然我们试图尽可能多地解释准则的相关解释,但期望明确涵盖每种情况是不合理的。如果您不确定某个插件是否违反了准则,请联系插件@wordpress.org然后问。

指导方针

1.插件必须与GNU通用公共许可证兼容

尽管任何与GPL兼容的许可证都是可以接受的,但强烈建议使用与WordPress相同的许可证-“GPLv2或更高版本”。所有代码、数据和图像(存储在WordPress.org上的插件目录中的任何内容)都必须符合GPL或GPL-Compatible许可证。包含的第三方库、代码、图像或其他内容必须兼容。有关兼容许可证的特定列表,请阅读GPL-Compatible许可证列表在gnu.org上。

2.开发人员负责插件的内容和操作。

插件开发人员的唯一责任是确保其插件中的所有文件符合指南。禁止故意编写代码以规避指导原则,或恢复要求他们删除的代码(参见#9非法/不诚实行为)。

在上传到SVN之前,开发者需要确认所有包含文件的许可,从原始源代码到图像和库。此外,他们必须遵守所有第三方服务的使用条款以及插件使用的API。如果无法验证库的许可或API的条款,则无法使用它们。

3.插件的稳定版本必须可以从WordPress插件目录页面获得。

WordPress.org发布的插件的唯一版本是目录中的插件。虽然人们可能在其他地方开发代码,但用户将从目录而不是开发环境下载代码。

通过替代方法分发代码,同时不保持此处托管的代码是最新的,这可能会导致插件被删除。

4.代码必须(大部分)是人类可读的。

通过使用类似于的技术或系统隐藏代码来模糊代码p、 a、c、k、e、r的模糊特性、丑陋的混乱或不明确的命名约定,例如$z12sdf813d目录中不允许使用。使代码非人类可读迫使未来的开发人员面临不必要的障碍,同时也成为隐藏恶意代码的常见载体。

我们要求开发人员以以下方式之一提供对其源代码和任何构建工具的公共维护访问:

  • 在部署的插件中包含源代码
  • 自述文件中指向开发位置的链接

我们强烈建议您记录如何使用任何开发工具。

5.不允许使用试用软件。

插件可能不包含被限制或锁定的功能,只能通过支付或升级提供。在达到试用期或配额后,不能禁用功能。此外,只提供沙盒访问API和服务的插件也是试用或测试插件,不允许使用。

服务中的付费功能允许(见准则6:服务软件),前提是插件内的所有代码都是完全可用的。我们建议使用WordPress.org之外的附加插件,以排除高级代码。插件仅用作开发工具的情况将根据具体情况进行审查。

尝试向用户追加特殊产品和功能的销售可以接受,只要它在准则11(劫持管理体验)的范围内。

6.允许使用软件即服务。

允许使用插件作为某些外部第三方服务(如视频托管网站)的接口,即使是付费服务也是如此。服务本身必须提供实质性功能,并在随插件提交的自述文件中明确记录,最好带有服务使用条款的链接。

服务和功能允许包括:

  • 不允许仅为验证许可证或密钥而存在的服务,而插件的所有功能都包含在本地。
  • 禁止通过将任意代码移出插件来创建服务,这样服务可能会虚假地显示为提供补充功能。
  • 不是服务的店面。不接受仅作为从外部系统购买的产品前端的插件。

为了保护用户隐私,如果没有明确的和授权同意。这通常通过“选择加入”方法完成,需要在插件设置中使用服务或复选框进行注册。插件自述文件中应包含关于如何收集和使用用户数据的文档,最好带有明确的隐私政策。

禁止跟踪的一些示例包括:

  • 自动收集用户数据,无需用户明确确认。
  • 故意误导用户提交信息,作为使用插件本身的要求。
  • 卸载与服务无关的资产(包括图像和脚本)。
  • 未记录(或记录不充分)使用外部数据(如区块列表)。
  • 追踪使用和/或观点的第三方广告机制。

该政策的一个例外是软件即服务,如Twitter、Amazon CDN插件或Akismet。通过安装、激活、注册和配置使用这些服务的插件,可以为这些系统授予许可。

8.插件不能通过第三方系统发送可执行代码。

允许从文档服务外部加载代码,但所有通信必须尽可能安全。不允许在插件中执行不作为服务的外部代码,例如:

  • 从WordPress.org以外的服务器提供更新或以其他方式安装插件、主题或附加组件
  • 安装同一插件的高级版本
  • 出于字体包含以外的原因调用第三方CDN;必须在本地包含所有与非服务相关的JavaScript和CSS
  • 在服务使用条款中未明确允许的情况下,使用第三方服务管理定期更新的数据列表
  • 使用iframe连接管理页面;应使用API将安全风险降至最低

与软件交互并将其推送到站点的管理服务允许,前提是该服务在自己的域中而不是在WordPress仪表板中处理交互。

9.开发人员及其插件不得做任何非法、不诚实或道德冒犯的事情。

虽然这是主观的,而且相当广泛,但其目的是防止插件、开发人员和公司滥用最终用户以及其他插件开发人员的自由和权利。

这包括(但不限于)以下示例:

  • 通过关键字填充、黑帽SEO或其他方式人为操纵搜索结果
  • 为使用插件的网站提供更多流量
  • 补偿、误导、施压、勒索或勒索他人以获得评论或支持
  • 暗示用户必须付费才能解锁包含的功能
  • 创建帐户以生成虚假评论或支持票(即套接字)
  • 将其他开发人员的插件作为原始作品呈现
  • 意味着插件可以创建、提供、自动化或保证合法合规性
  • 未经许可使用用户的服务器或资源,例如僵尸网络或加密的一部分
  • 违反WordPress.org社区行为准则
  • 违反WordCamp行为准则
  • 违反论坛指南
  • 针对WordPress社区任何其他成员的骚扰、威胁或虐待
  • 伪造个人信息,故意伪装身份,避免因之前的违规行为而受到制裁
  • 故意试图利用指南中的漏洞

插件代码中包含的所有“Powered By”或信用显示和链接必须是可选的,默认为在用户的前台网站上显示。用户必须选择通过明确说明和可理解的选项显示任何和所有学分和链接,而不是隐藏在使用条款或文档中。插件可能不需要学分或显示链接即可运行。服务如果代码是在服务中而不是在插件中处理的,则允许在他们认为合适的时候标记他们的输出。

11.插件不应劫持管理仪表板。

用户喜欢并期望插件感觉像WordPress的一部分。不断的唠叨和不必要的警报淹没了管理仪表板,从而降低了这种体验。

升级提示、通知、警报等必须限制范围,并谨慎使用,无论是上下文还是仅在插件的设置页面上使用。站点范围内的通知或嵌入式仪表板小部件必须解决问题后表现得不屑一顾或自以为是。错误消息和警报必须包含有关如何解决这种情况的信息,并在完成后自行删除。

WordPress仪表板中的广告应该避免,因为它通常是无效的。用户通常只在试图解决问题时访问设置页面。让插件更难使用通常不会鼓励良好的评论,我们建议限制在其中放置任何广告。记住:不允许通过这些广告跟踪推荐(请参阅准则7),大多数第三方系统不允许后端广告。滥用广告系统的指导方针将导致开发商被上报上游。

欢迎并鼓励开发人员添加指向自己网站或社交网络的链接,以及本地(插件内)包括图像的链接,以增强这种体验。

12.WordPress.org(readmes)上面向公众的页面不得发送垃圾邮件。

面向公众的页面,包括自述和翻译文件,不能用于垃圾邮件。垃圾邮件行为包括(但不限于)不必要的附属链接、竞争对手插件的标签、总共使用超过5个标签、黑帽SEO和关键字填充。

允许链接到直接需要的产品,例如主题或插件使用所需的其他插件。类似地,相关产品可以用于标签,但不能用于竞争对手。如果一个插件是WooCommerce扩展,它可能会使用标签“WooCommerce”然而,如果插件是Akismet的替代品,它可能不会将该术语用作标记。重复使用标签或特定术语被视为关键字填充,这是不允许的。

自述是为人们而不是机器人编写的。

在所有情况下,分支链接都必须公开,并且必须直接链接到分支服务,而不是重定向或隐藏的URL。

13.插件必须使用WordPress的默认库。

WordPress包括许多有用的库,例如jQuery、Atom Lib、SimplePie、PHPMailer、PHPass等等。出于安全性和稳定性的原因,插件可能不会在自己的代码中包含这些库。相反,插件必须使用与WordPress打包的那些库的版本。

有关WordPress中包含的所有javascript库的列表,请查看WordPress包含和注册的默认脚本.

14.应避免频繁提交插件。

SVN存储库是发布存储库,而不是开发存储库。所有提交、代码或自述文件都会触发与插件相关的zip文件的重新生成,因此只有准备好部署的代码(稳定版本、beta版或RC版)才应该推送到SVN。强烈建议在每次提交时包含描述性和信息性消息。频繁的“垃圾”提交消息,如“更新”或“清理”,使其他人很难跟踪更改。多次快速提交,只对插件的小方面(包括自述文件)进行了调整,这给系统带来了不必要的压力,可以被视为游戏“最近更新”列表。

一个例外是,当自述文件仅更新以表示支持WordPress的最新版本时。

15.每个新版本的插件版本号必须递增。

只有当插件版本增加时,才会提醒用户更新。trunk readme.txt必须始终反映插件的当前版本。有关标记的更多信息,请阅读我们的SVN标签说明readme.txt的工作原理.

16.提交时必须提供完整的插件。

所有插件在批准之前都要进行检查,这就是为什么需要zip文件的原因。名称不能“保留”以供将来使用或保护品牌(参见#17:尊重品牌)。未使用的获批插件的目录名可能会提供给其他开发人员。

17.插件必须尊重商标、版权和项目名称。

除非能够确认合法所有权/代表性,否则禁止将商标或其他项目用作插件slug的唯一或初始术语。例如WordPress基金会已将术语“WordPres”注册为商标在域名中使用“wordpress”是违法的。该政策扩展到插件slug,我们不允许slug以其他产品的术语开头。

例如,只有Super Sandbox的员工才应该使用slug“Super-Sandbox”,或者在“Super Sanbbox Dancing Sloths”等上下文中使用他们的品牌。非员工应该使用“Dancing Sloths For Superbox”等格式,以避免潜在误导用户相信插件是由Super Sankbox开发的。类似地,如果你不代表“MellowYellowSandbox.js”项目,那么用它作为插件的名称是不合适的。

推荐使用原创品牌,因为它不仅有助于避免混淆,而且对用户来说更容易记住。

18.我们保留尽最大能力维护插件目录的权利。

我们的意图是尽可能公平地执行这些准则。我们这样做是为了确保插件的整体质量和用户的安全。为此,我们保留以下权利:

  • …随时更新这些指南。
  • …禁用或删除目录中的任何插件,即使是因为指南中没有明确说明的原因。
  • …授予异常并允许开发人员有时间解决问题,甚至与安全相关的问题。
  • …删除开发人员对插件的访问权限,以代替新的活动开发人员。
  • …为了公共安全,在未经开发人员同意的情况下对插件进行更改。

作为回报,我们承诺谨慎使用这些权利,并尽可能尊重最终用户和开发人员。