Это не вопрос о том, как создать плагин WordPress. Скорее, какие, если таковые имеются, руководства могут быть применены к тому, как собрать файловую архитектуру любого плагина.
Некоторые другие языки программирования или библиотеки имеют очень контролируемые способы организации каталогов и файлов. Иногда это раздражает и подчеркивает свободу, которую предлагает PHP, но с другой стороны плагины WordPress собираются любым способом, который определяется их автором.
Правильного ответа нет , но я надеюсь уточнить, как я и другие строим плагины, чтобы сделать их более дружественными для других разработчиков, удобнее в отладке, более удобными для навигации и, возможно, более эффективными.
Последний вопрос: как вы думаете, как лучше организовать плагин?
Ниже приведены несколько примеров структур, но ни в коем случае не исчерпывающий список. Не стесняйтесь добавлять свои собственные рекомендации.
Предполагаемая структура по умолчанию
/wp-content
/plugins
/my-plugin
my-plugin.php
Метод Model View Controller (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 плагин Boilerplate
Доступно на Github
На основе API плагинов , Стандарты кодирования и документация Стандарты .
/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/
.