问题描述

是 drop-in 插件 – 当您直接在主题中复制插件 – 设计产品时。还是做了这个练习”organically” 。

最佳解决方案

这真的取决于开发人员以及他们如何训练使用 WordPress 。一般来说,我看到了两个思路:

Organic

一些开发人员在插件中发现一个他们觉得很酷的功能。不幸的是,他们不太确定如何实现它自己,但真的希望将功能包括在他们的主题。他们不会重新发明,而是将主题中包含一个 drop-in 插件。

在大多数情况下 (不是全部,但我看过的大部分),这是开发人员背景下缺乏经验的直接后果。要么他们不了解足够的 PHP 来自己建立一个新的系统,要么是太懒了,要尝试一下。

产品设计

其他开发商也将尝试迎合不了解更好的客户。他们的主题是围绕着一个大型的 Flash-based 旋转横幅插件来构建的。该插件是相当 well-known,但他们不知道/当原作者将更新系统的代码,他们的主题将不会理解。更改 DB 模式,更改参数,新挂钩… 所有这些都可能会破坏不会相应更新的主题。

客户点击”update” 不会冒险,而不必知道它会做什么 (或者一旦主题完成,就将风险绑定到一个客户端的无限更新的字符串),他们会将当前工作版本和 hard-code 的快照主题。这样他们就可以肯定地知道它将始终与他们的主题一起工作。

像 hard-coding 的外部引用类似于 Svn,然后禁用版本控制,因此您无法更新它:-)

为什么没关系

无论这种做法是有机还是故意的,这仍然是一个非常糟糕的主意!

无论主题是否更新,插件是否更新?WordPress 将最终更新。把你的客户限制在一个单一的版本是坦率地说,侮辱和坏的业务。而不是 hard-coding 一个 drop-in 插件,只是让您的主题播放很好提供的钩子,并鼓励用户安装其他系统。如果您使用 WordPress 钩子 (动作和过滤器) 而不是直接调用函数,那么在稳定性方面您并不冒险。如果挂钩发生更改,则该功能将被禁用,就像插件未安装一样。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。