最后更新:2017年1月30日
WordPress插件目录的目标是为所有WordPress用户(从非技术开发人员)提供安全的位置,以下载与WordPress项目目标一致的插件。
为此,我们希望为开发人员提供一个简单透明的过程,为目录提供插件。作为我们不断努力使插件目录包含过程更加透明的一部分,我们创建了开发人员指南列表。我们力争为所有开发人员创造一个公平的竞争环境。
如果您有改进文档的建议或有关的问题,请发送电子邮件至plugins@wordpress.org并通知我们。
##插件提交
为了提交一个插件,有三个步骤:
在WordPress.org上注册一个有效的,定期检查的电子邮件地址。如果您是代表公司提交插件,请使用官方公司电子邮件进行验证。
白名单plugins@wordpress.org在您的电子邮件客户端,以确保您收到电子邮件通信。
提交你的插件,简要介绍一下它的作用,以及一个链接到一个完整的,准备去插件的zip。
一旦插件排队等待审核,我们将检查插件的任何问题。大多数问题可以通过遵循以下准则来避免。如果我们发现问题,我们将联系开发人员,并致力于解决问题。
##开发者期望
开发人员,具有提交访问权限的所有用户以及正式支持插件的所有用户都应遵守目录指南。违规可能会导致从目录中删除插件或插件数据(以前批准的插件),直到问题解决。插件数据(如用户评论)可能无法恢复,具体取决于违规的性质和同行评审结果。重复违规可能导致所有作者的插件被删除,并且开发人员被禁止在WordPress.org上托管插件。插件开发人员有责任确保他们在WordPress.org上的联系信息是最新和准确的,以便他们收到插件团队的所有通知。
目录中的所有代码应尽可能安全。安全性是插件开发人员的最终责任,但是插件目录最大限度地强化了这一点。如果一个插件被发现有安全问题,它将被关闭,直到情况解决。在极端情况下,WordPress安全团队可能会更新该插件,并为了公众的安全而进行传播。
尽管我们试图解释尽可能多的指导原则的相关解释,但期望明确涵盖每一种情况都是不合理的。如果您不确定插件是否可能违反指南,请通过plugins@wordpress.org与我们联系并询问。
##指南
- 插件必须与WordPress.org上托管的GNU通用公共许可证v2或任何更高版本兼容。
虽然任何与GPL兼容的许可证都是可以接受的,但建议使用与WordPress相同的许可证 - “GPLv2或更高版本”。所有代码,数据和图像 - 存储在目录中的任何内容必须符合GPL(任何版本,两个或更高版本),无论其创建者如何。包括的第三方库也必须兼容。有关兼容许可证的具体列表,请阅读gnu.org上的GPL兼容许可证列表。
- 插件开发人员负责他们上传的文件和他们使用的服务。
插件开发人员有责任确保其插件内的所有文件符合指南。预计在上传到SVN之前,将所有包含的文件的许可证从原始源代码确认到图像和图书馆。此外,他们必须遵守其插件使用的所有第三方服务和API的使用条款。如果无法验证图书馆的许可或API的条款,则不能包括它们。
- 您的插件的稳定版本必须可以从其WordPress插件目录页面。
WordPress.org分发的插件的唯一版本是目录中的插件。虽然您可能会在其他地方开发代码,但请记住,用户将从目录下载,而不是您的开发环境。
- 保持你的代码(主要是)人的可读性。
通过使用与p,a,c,k,e,r的混淆特征相似的技术或系统隐藏代码来有意识地隐藏代码,uglify的mangle或不明确的命名约定(如$ z12sdf813d)在目录中是不允许的。不幸的是,许多人使用这种方法来尝试隐藏恶意代码,如后门或跟踪。此外,WordPress代码旨在让任何人能够学习,编辑和调整。使代码非人类可读迫使未来的开发人员面临不必要的障碍。可以使用最小化的代码,但是尽可能地包括未最终版本。我们建议遵循WordPress核心编码标准。
- 目录中不允许使用试用版。
尝试在其他产品和功能上加强用户的限制是可以接受的。
Upsell通知不应过于突出或令人讨厌。
插件可能不包含被瘫痪或锁定的功能,只能通过付款或升级来解锁。付费功能必须是外部托管服务或单独的插件的一部分,而不是托管在wordpress.org上。
试用期或配额后,插件可能不会禁用包含的功能。
- 目录中允许软件即服务。
作为一些外部第三方服务(例如,视频托管网站)的界面的插件,即使是付费服务也被允许。服务本身必须提供实质的功能,并在与插件一起提交的自述文件中明确记录,最好是链接到服务使用条款。
不允许的服务和功能包括:
存在仅用于验证许可证或密钥的服务,而插件的所有功能方面都包含在本地的服务是不允许的。
通过将任意代码移出插件来创建服务,以防止服务可能错误地显示为提供补充的功能。
不是服务的店面。仅作为从外部系统购买的产品的前端的插件将不被接受。
- 插件可能不会在没有他们明确的,明确的,选择的同意的情况下“手机回家”或跟踪用户。
为了保护用户隐私,插件可能不需要用户通过要求在设置中注册服务或复选框的明确同意来联系外部服务器。这种方法被称为“选择加入”。关于如何收集和使用任何用户数据的文档应该包含在插件的自述文件中,最好用明确的隐私政策。
此限制包括以下内容:
未经授权收集用户数据。可能会要求用户提交信息,但不能自动记录用户的明确确认。
禁止有意误导用户提交信息作为使用插件本身的要求。
图像和脚本应尽可能在本地加载,作为插件的一部分。如果需要外部数据(如块列表),则必须向用户明确其包含的内容。
默认情况下,插件内使用的任何第三方广告机制都必须禁用所有跟踪功能。禁止不具有禁止用户跟踪功能的广告机制。
这个政策的唯一例外是软件即服务,如Twitter,Amazon CDN插件或Akismet。通过安装,激活,注册和配置利用这些服务的插件,可以同意这些系统。
- 插件可能不会通过第三方系统发送可执行代码。
允许从文件化服务中外部加载代码,但所有通信必须尽可能安全。不允许在插件中执行外部代码,例如:
从WordPress.org以外的其他服务器更新或安装插件,主题或附件
安装相同插件的高级版本
由于字体包含以外的原因,呼叫第三方CDN;所有非服务相关的JavaScript和CSS必须包含在本地
使用第三方服务来管理定期更新的数据列表,当服务的使用条款未明确允许时
使用iframe连接管理页面;应该使用API来最小化安全风险
- 插件及其开发人员不得做任何非法,不诚实或道德上的冒犯。
虽然这是主观和相当广泛的,但其目的是防止插件,开发人员和公司滥用最终用户以及其他插件开发人员的自由和权利。
这包括(但不限于)以下示例:
- 通过关键字填充,黑帽SEO或其他方式人工操纵搜索结果
- 提供更多的流量到使用该插件的网站
- 补偿,误导,压力,勒索或黑客用户进行评论
- 应用用户必须支付解锁包含的功能
- 创建帐户以生成假评论或支持票据(即,sockpuppeting)
- 伪造个人信息,故意伪装身份,避免对以前违规的制裁
- 考虑其他开发人员的插件,并将其作为原创作品
- 利用用户的服务器或资源作为僵尸网络的一部分
- 有意试图利用指南中的漏洞
- 违反WordCamp行为准则
- 插件不得在公共网站上嵌入外部链接或信用额度,而不会明确要求用户的许可。
所有“Powered By”或插件代码中包含的信用显示和链接必须是可选的,默认值不会显示在用户的前端网站上。用户必须选择通过明确且可理解的选择来显示任何和所有信用和链接,不被隐瞒在使用条款或文档中。插件可能不需要信用或链接显示才能运行。允许服务按照合适的方式对其输出进行品牌标记,只要代码在服务中处理而不是插件处理。
- 插件不应该劫持管理仪表板。
用户喜欢和期望插件感觉像是WordPress的一部分。恒定的n ags。ming the the the the the the。。。。。。。。。。
升级提示,通知和警报的范围应受到限制,谨慎使用或仅在插件的设置页面上使用。任何网站广泛的通知或嵌入的仪表板小部件必须被忽略。错误消息和警报应包括有关如何解决情况的信息,并在完成时删除。
WordPress仪表板上的广告应受到限制。当成员被允许宣传自己的产品和服务时,用户历史上变得无效;理想情况下,用户很少访问这些屏幕。请记住:不允许通过这些广告追踪转介(见准则7),大多数第三方系统不允许后端广告(特别是Google)。滥用广告系统的指导方针将导致此类行为被报告。
开发人员是受欢迎的,并鼓励包括链接到自己的网站或社交网络,以及本地(在插件内),包括图像,以增强体验。
- WordPress.org上的面向公众的页面(readmes)可能不是垃圾邮件。
公开的网页(包括readmes和translation文件)可能不会被用于垃圾邮件。垃圾邮件行为包括(但不限于)购买的会员链接,标签到竞争对手插件,总共使用超过12个标签,黑色SEO和关键字填充。
允许直接要求的产品的链接,例如主题或插件使用所需的其他插件。类似的相关产品可能用于标签,但不能用于竞争对手。如果一个插件是一个WooCommerce扩展,它可以使用标签'Wuocommerce'。 '如果插件是Akismet的替代品,它可能不会将该术语用作标签。重复使用标签或特定术语被认为是关键字填充,不允许。
为人写的你的readmes,而不是机器人。
在所有情况下,联盟链接必须进行,并且必须直接链接到联盟服务,而不是重定向或隐藏的URL。
- 插件应该使用WordPress的默认库。
WordPress包含许多有用的库,如jQuery,Atom Lib,SimplePie,PHPMailer,PHPass等。为了安全和稳定的原因,插件可能不会在自己的代码中包含这些库,而是必须使用WordPress打包的那些库的版本。
有关WordPress中包含的所有JavaScript库的列表,请查看WordPress中包含并注册的默认脚本。
- 频繁提交插件应该是违反。
SVN存储库是一个版本库,而不是开发版本。所有提交将触发与插件相关联的zip文件的再生,因此只有准备好部署的代码(即稳定版本,beta或RC)才能被推送到SVN。强烈建议在每个提交中包含一个描述性和翔实的信息。频繁的“垃圾”提交消息,如“更新”或“清理”,使其他人难以追踪更改。承诺仅调整插件的小部分(包括自述文件)会对系统造成不必要的压力,并可被视为游戏最近更新的列表。
- 插件版本号必须在每次发布新版本时增加。
当代码版本在SVN中递增时,用户将只会被提醒。开发人员可以通过增加中继分支中readme.txt中的插件版本号或通过创建一个带有readme.txt的新标签分支来部署这些更新,该分支具有与分支目录名匹配的增量插件版本。
如果开发人员采用标签目录方式分发其最新版本的插件,则可以不间断更新中继文件夹,而无需更改版本号。标签目录通常不会通过初始标记更新,除非需要更新readme.txt以支持发布新版本的WordPress。
有关标记的更多信息,请阅读我们的SVN标签说明以及readme.txt的工作原理。
- 在将插件请求提交到目录时,必须有一个完整的插件。
所有插件在批准之前都会进行检查,这就是为什么需要链接到zip的原因。名称不能“保留”供将来使用。在合理的时间内未使用的已批准插件的目录名称可能会提供给其他开发人员。
- 尊重商标和项目。
除非证明合法所有权/代表证明,否则禁止使用商标或其他项目作为插件插件的唯一或初始条款。例如,WordPress基金会将术语“WordPress”注册,并且在域名中使用“wordpress”是违规行为。这个政策扩展到插件插件。
另一个例子,只有Facebook的员工才能使用“Facebook”或其品牌在“Facebook Dancing Sloths”这样的背景下使用。非员工应该使用像“Dancing Sloths for Facebook”这样的格式,以避免潜在的误导用户认为该插件是由Facebook开发的。同样,如果您不代表“Chart.js”项目,将其用作插件的名称是不合适的。
推荐原创品牌,因为它不仅有助于避免混淆,而且对用户更加难忘。
- 我们保留随时更改插件指南的权利,恕不另行通知。
我们保留在任何时候根据需要更新这些指南的权利。
我们保留以任何理由任意禁用或删除任何插件的权利,即使由于这些准则未明确涵盖的原因。我们的目的是以尽可能公平的方式执行这些指南,以确保插件的质量和用户的安全。
- 简介
- 主题开发
- WordPress许可证
- 什么是主题
- 开发环境
- 主题开发示例
- 主题基础
- 模板文件
- 主样式表(style.css)
- 文章类型
- 规划主题文件
- 模板层级
- 模板标签
- 循环
- 主题函数
- 连接主题文件和目录
- 使用CSS和JavaScript
- 条件标签
- 类别,标签和自定义分类
- 模板文件
- 内容模板文件
- 页面模板文件
- 附件模板文件
- 自定义内容类型
- 部分和其他模板文件
- 评论模板
- 分类模板
- 404页面
- 主题功能
- 核心支持的功能
- 管理菜单
- 自定义Headers
- 自定义Logo
- 文章格式
- 置顶文章
- Sidebars
- Widgets
- 导航菜单
- 分页
- 媒体
- Audio
- Images
- Galleries
- Video
- 精选图片和缩略图
- 国际化
- 本地化
- 辅助功能
- 主题选项 – 自定义API
- 定制对象
- 改进用户体验的工具
- 定制JavaScript API
- JavaScript / Underscore.js渲染的自定义控件
- 高级用法
- 主题安全
- 数据消毒/逃避
- 数据验证
- 使用随机数
- 常见漏洞
- 高级主题
- 子主题
- UI最佳实践
- JavaScript最佳做法
- 主题单元测试
- 验证你的主题
- Plugin API Hooks
- 发布你的主题
- 所需的主题文件
- 测试
- 主题评论指南
- 写文档
- 提交你的主题到WordPress.org
- 参考文献
- 模板标签列表
- 条件标签列表
- 编码标准
- HTML编码标准
- CSS编码标准
- JavaScript编码标准
- PHP编码标准
- 插件开发
- 插件开发简介
- 什么是插件
- 插件基础
- 头部要求
- 包括软件许可证
- 启用 / 停用 Hooks
- 卸载方法
- 最佳做法
- 插件安全
- 检查用户功能
- 数据验证
- 保护输入
- 保护输出
- 随机数
- Hooks
- Actions
- Filters
- 自定义Hooks
- 高级主题
- 管理菜单
- 顶级菜单
- 子菜单
- 短代码
- 基本短码
- 封闭短码
- 带参数的短代码
- TinyMCE增强型短码
- 设置
- 设置API
- 使用设置API
- 选项API
- 自定义设置页面
- 元数据
- 管理帖子元数据
- 自定义元数据
- 渲染元数据
- 自定义文章类型
- 注册自定义文章类型
- 使用自定义文章类型
- 分类
- 使用自定义分类
- 在WP 4.2+中使用“split术语”
- 用户
- 创建和管理用户
- 使用用户元数据
- 角色和功能
- HTTP API
- JavaScript
- jQuery
- Ajax
- 服务器端PHP和入队
- Heartbeat API
- 概要
- 计划任务
- 了解WP-Cron计划
- 安排WP-Cron 事件
- 将WP-Cron挂接到系统任务计划程序中
- WP-Cron简单测试
- 国际化
- 本地化
- 如何国际化您的插件
- 国际化安全
- WordPress.org
- 详细插件指南
- 规划您的插件
- 如何使用Subversion
- 插件开发者常见问题
- 开发工具
- Debug Bar 和附加组件
- 辅助插件
- REST API手册
- 资源
- 文章
- 文章修订
- 文章类型
- 文章状态
- 类别
- 标签
- 页面
- 评论
- 分类
- 媒体
- 用户
- 设置
- 使用REST API
- 全局参数
- 分页
- 链接和嵌入
- 发现
- 认证
- 经常问的问题
- 骨干JavaScript客户端
- 客户端库
- 扩展REST API
- 添加自定义端点
- 自定义内容类型
- 修改回应
- 模式
- 词汇表
- 路由和端点
- 控制器类