当现有插件已经能完成大部分工作且处于积极维护状态时,请使用现有插件。当该工作对您的业务至关重要、需要任何插件都无法适配的数据模型,或者需要将多个插件堆叠在一起时,请构建定制插件。下面的六个问题将该规则转化为决策依据。
第 0 步:用一段话写明需求
描述该功能必须做什么、谁在使用它以及它涉及哪些数据。如果您无法写出这段话,说明您还没有准备好选择任何一条路线。然后搜索与之匹配的插件。
这六个问题
- 维护工作量。 谁来确保它在 WordPress、PHP 和插件更新后依然正常运行?对于现有插件,请打开其 WordPress.org 页面,检查它最后一次更新的时间以及所测试的 WordPress 版本。对于定制插件,请确定发布后谁来负责更新。
- 安全面。 每个插件都是在您网站权限下运行的代码。现有插件引入了您未编写且不易审查的代码。定制插件则引入了必须有人仔细编写的代码,其中包含经过滤的输入、转义的输出以及检查过的权限。默认情况下,这两条路线都不是绝对安全的。
- 数据模型。 插件存储数据的方式是否符合您的工作方式?庞大或不常见的数据(例如数千个即将到期的优惠券)通常需要为此专门设计自定义文章类型或数据表。DieRabatte.de 的优惠券平台通过自定义文章类型而不是通用插件来管理每日 4,000+ 的交易。
- 性能成本。 检查插件在每个页面上加载了什么。浏览器的开发者工具显示了额外的脚本和样式,而免费的 Query Monitor 插件则显示了每个请求的数据库查询次数。对于仅在单个页面上使用的功能,却在全站加载其资产的插件,会让每个访客为其付出性能代价。
- 许可证与续费。 将三年内的许可证年度成本加起来,并检查停止付费后这些功能会发生什么。
- 退出成本。 如果插件消失了或者您不再适用它,您能否以可用的格式导出您的数据?文档化结构中的自定义数据比插件私有格式中的数据更容易迁移。
解读答案
| 如果此情况属实 | 倾向于 |
|---|---|
| 某个活跃插件涵盖了大部分需求且数据很普通 | 现有插件 |
| 该功能对收入至关重要且需要特殊逻辑 | 定制插件 |
| 您需要堆叠三个或更多插件才能实现目标 | 定制插件 |
| 该插件已被放弃或很少更新 | 替换它,使用定制插件或另一个得到维护的插件 |
| 唯一的差距是一个很小的行为 | 现有插件加上一个使用钩子(hooks)的小型定制插件 |
大多数人忽略的中间路线
如果一个好插件完成了 90% 的工作,请不要动它,并通过使用其钩子(hooks)和过滤器的微型定制插件来添加缺失的 10%。不要编辑插件自己的文件,因为下一次更新会覆盖您的更改。
比较实际成本
索取定制路线的固定范围报价,并将其与现有路线的三年成本进行比较:许可证、维护时间以及替换废弃插件的风险。还要算上性能成本,因为网站变慢会降低转化率。
常见问题
我如何知道一个插件是否得到了维护?
检查其 WordPress.org 页面上的最后更新日期以及测试过的 WordPress 版本,然后粗略浏览最近的支持讨论贴,查看是否有未解决的问题。
自定义插件比热门插件更安全吗?
并非绝对。热门插件会接受更严格的审查,而自定义插件在您网站上运行的代码较少。关键在于代码编写和审查的仔细程度。
当 WordPress 更新时,自定义插件会失效吗?
如果它依赖私有函数,则可能会。基于 WordPress 的公开钩子(hooks)和过滤器(filters)构建的插件出现这种情况的可能性要小得多,而且您仍然应该在暂存环境中测试更新。
不确定该选择哪种方式?
发给我们一段需求描述,我们将告诉您哪种路径适合,以及原因。请查看我们的自定义 WordPress 主题和插件开发服务, 或阅读如何创建 WordPress 插件.





