你如何组织你的插件和主题代码?

时间:2010-07-19 14:42:32

标签: wordpress-plugin wordpress-theming wordpress

我开始使用WordPress作为CMS,现在V3可以更轻松地管理分类法和自定义帖子类型。我的工作主要集中在开发插件和主题上。

我最大的插件执行一些管理员工作(添加管理菜单项和相关页面和功能),但也进行一些导入和导出,并挂钩一些基本后期处理处理(“创建新帖子时”)

我最大的主题是非常小,它所做的就是以自定义方式显示自定义帖子。

经过几周的工作,我有几千个LoC,而且越来越难以深入研究。这引出了以下问题:如何组织WP插件代码?你的WP主题代码怎么样?

4 个答案:

答案 0 :(得分:4)

  

几千个LoC

那太漂亮了!我总是发现WP的魅力在于我可以像jQuery所说的那样;

  

少写,做多!

使用Pods CMS与WP一起减少代码可能会好得多。

答案 1 :(得分:3)

这是我们构建包含主题,第三方插件和自定义代码的客户端部署的方式。

  • wp-content / plugins仅包含第三方插件,此处未修改任何代码,并且任何这些插件被禁用/删除都不应该限制该网站。
  • wp-content / themes应包含与前端表示相关的代码。诀窍不是不会使主题(functions.php和其他与主题相关的文件)重载与代码不直接相关的代码。
  • mu-plugins /包含所有特定于实现的业务逻辑。这里的事情永远不应该被禁用,并且是操作所必需的。

这是一个非常简短的总结,但简而言之,这是我们发现最容易失败的代码的逻辑分区。

答案 2 :(得分:0)

为什么不按功能将插件拆分成多个文件?主题也是如此。你有什么问题吗?

答案 3 :(得分:0)

基本上有三种方法可以做到这一点:前缀函数,require_once包括按功能划分的文件,这很常见。

其他“正确”的方式很多,其中包含一个包含所有插件代码的巨型类。正如你所说的那样,在保持良好状态的同时,一旦该文件进入了数千行代码,你就会陷入可管理性的困境。

我喜欢这样做的方式来自我的C#背景 - 有一个主插件类和其他“worker”类(你可以将它们放在命名空间中以保持类名简短)。例如,有一个专门用于admin部分的类(它也可以有自己的小“子类”,比如说每个页面一个)。将所有这些代码重构为不同的类和文件需要一段时间,但它是值得的 - 跟踪所有内容,以及让人们在代码库上工作会更容易一起。它还会让你更多地考虑你的应用程序如何融合在一起,这有助于更好地考虑代码。

我实际上正在写一篇关于此的文章系列,概述了三种不同的方法。您可以查看第一部分here。接下来的几周还会有两个。

希望我帮忙!