To nie jest pytanie o to, jak zbudować wtyczkę WordPress. Raczej, jakie, jeśli w ogóle, przewodniki można zastosować do tego, jak złożyć architekturę plików dowolnej wtyczki.
Niektóre inne języki programowania lub biblioteki mają bardzo kontrolowane sposoby organizowania katalogów i plików. Czasami jest to denerwujące i podkreśla swobodę, jaką oferuje PHP, ale z drugiej strony wtyczki WordPress są zestawiane w dowolny sposób określony przez ich autora.
Nie ma właściwej odpowiedzi , ale mam nadzieję, że dopracuję sposób, w jaki ja i inni tworzymy wtyczki, aby były bardziej przyjazne dla innych programistów, aby się rozłączyli, łatwiej debugować, łatwiej nawigować i być może bardziej wydajne.
Ostatnie pytanie: jaki według Ciebie jest najlepszy sposób na zorganizowanie wtyczki?
Poniżej znajduje się kilka przykładowych struktur, ale w żadnym wypadku nie jest to wyczerpująca lista. Dodaj własne rekomendacje.
Zakładana domyślna struktura
/wp-content/plugins/my-pluginmy-plugin.php
Metoda Model View Controller (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.php
my-plugin.php
Trzy części MVC:
- W modelu współgra z bazą danych, zapytań oraz zapisywania danych i zawiera logikę.
- Kontroler będzie zawierać szablon tagi i funkcje, że widok będzie wykorzystują.
- Widok odpowiada wyświetlania danych dostarczonych przez model tak skonstruowany przez kontroler.
Organizowane według metody typu
/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 Plugin Boilerplate
Dostępne na Github
Na podstawie interfejsu API wtyczki , standardów kodowania i standardów dokumentacji .
/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
Luźno zorganizowana metoda
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/i js/będzie styles/, images/i scripts/.