Home » 开发 » Plugin API - Action Reference » 详细的插件指南

详细的插件指南

本文目录
[隐藏]

在插件的开发过程中我们需要注意一些问题,以防止与别人的插件冲突,也为了安全问题,下面就是wordpress官方的详细插件指南,为了查看方便,小编将他翻译了,由于水平有限,希望大家批评指正!

插件目录#

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

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

如果您有改进指南的建议或有关它们的问题,请发送电子邮件至plugins@wordpress.org并告知我们。

开发者期望#
开发人员,具有提交权限的所有用户以及正式支持插件的所有用户都应遵守这个目录准则。

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

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

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

虽然我们试图尽可能多地解释指南的相关解释,但期望明确涵盖所有情况是不合理的。如果您不确定插件是否可能违反指南,请联系plugins@wordpress.org并询问。

准则#

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

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

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

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

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

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

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

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

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

通过使用类似于p,a,c,k,e,r的混淆功能,uglify的mangle或不清楚的命名约定(如$ z12sdf813d)的技术或系统隐藏代码,不允许在目录中隐藏代码。不幸的是,许多人使用这种方法来尝试隐藏恶意代码,例如后门或跟踪。此外,WordPress代码适用于任何能够学习,编辑和改编的人。使代码非人类可读,迫使未来的开发人员面临不必要的障碍。可以使用缩小的代码,但是应尽可能包含未分类的版本。我们建议遵循WordPress核心编码标准

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

插件可能不包含受限制或锁定的功能,只能通过付款或升级提供。在试用期或配额后,他们可能无法禁用所包含的功能。服务中的付费功能_is_允许(参见指南6:服务软件),前提是插件中的所有代码都是完全可用的。

我们建议使用在WordPress.org之外托管的附加插件,以排除高级代码。在准则11的范围内尝试向用户推销其他产品和功能是可以接受的(不要劫持管理员);它们不应过于突出或使用户烦恼。

6.允许软件即服务。

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

不允许的服务和功能包括:

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

7.未经用户同意,插件可能无法跟踪用户。

为了保护用户隐私,未经明确和授权的同意,插件不得与外部服务器联系。这通常通过“选择加入”方法完成,需要在插件设置中注册服务或复选框。有关如何收集和使用任何用户数据的文档应包含在插件的自述文件中,最好带有明确规定的隐私政策。

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

无需用户明确确认即可自动收集用户数据。
故意误导用户提交信息作为使用插件本身的要求。
卸载与服务无关的资产(包括图像和脚本)。
未记录(或记录不当)使用外部数据(例如阻止列表)。
跟踪使用和/或视图的第三方广告机制。
此策略的一个例外是软件即服务,例如Twitter,Amazon CDN插件或Akismet。通过安装,激活,注册和配置使用这些服务的插件,可以同意这些系统。

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

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

从WordPress.org以外的服务器提供更新或以其他方式安装插件,主题或附加组件
安装同一插件的高级版本
出于字体包含以外的原因调用第三方CDN;所有与服务无关的JavaScript和CSS都必须包含在本地
如果未在服务的使用条款中明确允许,则使用第三方服务来管理定期更新的数据列表
使用iframe连接管理页面;应使用API??来最大限度地降低安全风险
如果服务处理其自身域上的交互而不是WordPress仪表板内的交互,则允许与软件交互并将软件下载到站点的管理服务。

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

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

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

通过关键字填充,黑帽SEO或其他方式人为操纵搜索结果
旨在为使用该插件的网站带来更多流量
为评论或支持补偿,误导,施加压力,勒索或勒索其他人
暗示用户必须付费才能解锁所包含的功能
创建帐户以生成虚假评论或支持票证(即sockpuppeting)
采用其他开发人员的插件并将其作为原创作品展示
暗示插件可以创建,提供,自动化或保证合法合规性
未经许可使用用户的服务器或资源,例如僵尸网络或加密挖掘的一部分
违反WordCamp行为准则
违反论坛准则
针对WordPress社区任何其他成员的骚扰,威胁或滥用行为
伪造个人信息以故意掩盖身份并避免对以前的违规行为进行制裁
故意试图利用指南中的漏洞

10.未明确询问用户的许可,插件不得在公共站点上嵌入外部链接或信用。

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

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

用户更喜欢并期望插件感觉像是WordPress的一部分。持续的唠叨和压倒性的管理仪表板与不必要的警报有损于这种体验。

升级提示,通知,警报等必须限制范围并谨慎使用,无论是在上下文中还是仅在插件的设置页面上使用。网站范围通知或嵌入式仪表板小部件在解决后必须是可以被拒绝或自行解雇的。错误消息和警报必须包含有关如何解决问题的信息,并在完成后自行删除。

应避免在WordPress仪表板中进行广告,因为它通常无效。用户通常只在尝试解决问题时才访问设置页面。使用插件变得更加困难通常不会鼓励您进行良好的审核,我们建议限制放置在其中的任何广告。请注意:不允许通过这些广告跟踪推介(参见指南7),大多数第三方系统不允许后端广告。滥用广告系统的指导方针将导致开发人员向上游报告。

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

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

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

可以在审核期间链接到直接需要的产品,例如插件使用所需的主题或其他插件。同样,相关产品可用于标签,但不能用于竞争对手。如果插件是WooCommerce扩展,它可能使用标签’woocommerce。’但是如果插件是Akismet的替代品,它可能不会使用该术语作为标签。标签或特定术语的重复使用被视为关键字填充,不允许使用。

自述文件应该是为人而不是机器人编写的。

在所有情况下,必须披露联盟链接,并且必须直接链接到联盟服务,而不是重定向或隐藏的URL。

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

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

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

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

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

例外情况是自述文件仅更新以表示支持最新版本的WordPress。

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

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

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

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

17.插件必须遵守商标,版权和项目名称。

除非可以确认合法所有权/代理证明,否则禁止使用商标或其他项目作为插件的唯一或初始条款。例如,WordPress基金会已将“WordPress”一词注册为商标,在域名中使用“wordpress”是违法行为。这个政策延伸到插件slu ,,我们不会允许slug从另一个产品的术语开始。

例如,只有Super Sandbox的员工应该在“Super Sandbox Dancing Sloths”等环境中使用slug“super-sandbox”或他们的品牌。非员工应该使用诸如“为Superbox跳舞懒惰”之类的格式来避免可能误导用户相信该插件是由Super Sandbox开发的。同样,如果您不代表“MellowYellowSandbox.js”项目,则将其用作插件的名称是不合适的。

建议使用原始品牌,因为它不仅有助于避免混淆,而且对用户来说更难忘。

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

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

……随时更新这些指南。
…即使出于指南未明确涵盖的原因,也要禁用或删除目录中的任何插件。
…授予例外并允许开发人员有时间解决问题,甚至安全相关。
…删除开发人员对插件的访问权限,以代替新的活跃开发人员。
…为了公共安全的利益,在未经开发者同意的情况下对插件进行更改。
作为回报,我们承诺尽可能谨慎地使用这些权利,并尽可能地尊重最终用户和开发人员。

雨田

一个喜欢折腾wordpress的爱好者,希望与大家一起探讨wp技术!