这不是关于如何构建WordPress插件的问题。相反,如果有的话,什么指南可以应用于如何组合任何插件的文件体系结构。
其他一些编程语言或库具有组织目录和文件的受控方式。有时,这很烦人,并且突显了PHP提供的自由,但是在另一方面,WordPress插件以其作者确定的任何方式组合在一起。
没有一个正确的答案,但是我的希望是完善我和其他人构建插件的方式,以使它们对其他开发人员更友好地进行剖析,更易于调试,更易于导航,并且可能更加高效。
最后一个问题:什么你认为是组织的一个插件的最佳方式?
以下是一些示例结构,但绝不是详尽的列表。随时添加自己的建议。
假定默认结构
/wp-content
/plugins
/my-plugin
my-plugin.php
模型视图控制器(MVC)方法
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.php
my-plugin.php
MVC的三个部分:
- 该模型与数据库交互,查询和保存数据,并包含逻辑。
- 该控制器将包含模板标签和功能视图将利用。
- 该视图负责显示由控制器构造的模型提供的数据。
按类型组织
/wp-content
/plugins
/my-plugin
/admin
admin.php
/assets
css/
images/
/classes
my-class.php
/lang
my-es_ES.mo
/templates
my-template.php
/widgets
my-widget.php
my-plugin.php
WordPress插件样板
在Github上可用
/wp-content
/plugins
/my-plugin
/admin
/css
/js
/partials
my-plugin-admin.php
/includes
my_plugin_activator.php
my_plugin_deactivator.php
my_plugin_i18n.php
my_plugin_loader.php
my_plugin.php
/languages
my_plugin.pot
/public
/css
/js
/partials
my-plugin-public.php
LICENSE.txt
README.txt
index.php
my-plugin.php
uninstall.php
松散的组织方法
/wp-content
/plugins
/my-plugin
css/
images/
js/
my-admin.php
my-class.php
my-template.php
my-widget.php
my-plugin.php
css/
,images/
和js/
将是styles/
,images/
和scripts/
。