Це не питання про те, як створити плагін WordPress. Швидше, які, якщо такі є, посібники можна застосувати до того, як зібрати архітектуру файлів будь-якого плагіна.
Деякі інші мови програмування або бібліотеки мають дуже контрольовані способи організації каталогів та файлів. Іноді це дратує і підкреслює свободу, яку пропонує PHP, але на зворотному боці WordPress плагіни збираються будь-яким чином, як визначає їх автор.
Невірна відповідь , але я сподіваюся, щоб уточнити, як я та інші будують плагіни, щоб зробити їх більш приємними для інших розробників для невиконання, простішого налагодження, простішої навігації та, можливо, більш ефективної.
Останнє запитання: що ж ви думаєте , це кращий спосіб організувати плагін?
Нижче наведено кілька зразкових структур, але жодним чином не є вичерпним списком. Не соромтеся додавати власні рекомендації.
Передбачається структура за замовчуванням
/wp-content/plugins/my-pluginmy-plugin.php
Метод контролера перегляду моделі (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 плагін котла
Доступний на 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/.