Это не вопрос о том, как создать плагин WordPress. Скорее, какие, если таковые имеются, руководства могут быть применены к тому, как собрать файловую архитектуру любого плагина.
Некоторые другие языки программирования или библиотеки имеют очень контролируемые способы организации каталогов и файлов. Иногда это раздражает и подчеркивает свободу, которую предлагает PHP, но с другой стороны плагины WordPress собираются любым способом, который определяется их автором.
Правильного ответа нет , но я надеюсь уточнить, как я и другие строим плагины, чтобы сделать их более дружественными для других разработчиков, удобнее в отладке, более удобными для навигации и, возможно, более эффективными.
Последний вопрос: как вы думаете, как лучше организовать плагин?
Ниже приведены несколько примеров структур, но ни в коем случае не исчерпывающий список. Не стесняйтесь добавлять свои собственные рекомендации.
Предполагаемая структура по умолчанию
/wp-content/plugins/my-pluginmy-plugin.php
Метод Model View Controller (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.php
my-plugin.php
MVC три части:
- В модели взаимодействует с базой данных, запросов и сохранения данных, а также содержит логику.
- Контроллер будет содержать шаблонные теги и функции, вид будет использовать.
- Вид отвечает , чтобы отобразить данные , предоставленные моделью , как строится с помощью контроллера.
Организовано по типу метода
/wp-content/plugins/my-plugin/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-widget.php
my-plugin.php
WordPress плагин Boilerplate
Доступно на Github
На основе API плагинов , Стандарты кодирования и документация Стандарты .
/wp-content/plugins/my-plugin/admin/css/js/partialsmy-plugin-admin.php
/includesmy_plugin_activator.phpmy_plugin_deactivator.phpmy_plugin_i18n.phpmy_plugin_loader.phpmy_plugin.php
/languagesmy_plugin.pot
/public/css/js/partialsmy-plugin-public.php
LICENSE.txtREADME.txtindex.phpmy-plugin.phpuninstall.php
Свободно организованный метод
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/и js/будет styles/, images/и scripts/.