Questa non è una domanda su come creare un plugin per WordPress. Piuttosto, quali eventuali guide potrebbero essere applicate a come mettere insieme l'architettura dei file di qualsiasi plugin.
Alcuni altri linguaggi o librerie di programmazione hanno modi molto controllati di organizzare directory e file. A volte questo è fastidioso e mette in evidenza la libertà che offre PHP, ma i plugin WordPress a rovescio sono messi insieme in qualsiasi modo, come determinato dal loro autore.
Non c'è una risposta giusta , ma la mia speranza è quella di affinare il modo in cui io e gli altri creiamo plugin per renderli più facili da disabilitare per gli altri sviluppatori, più facili da eseguire il debug, più facili da navigare e forse più efficienti.
La domanda finale: cosa si pensa è il modo migliore per organizzare un plugin?
Di seguito sono riportate alcune strutture di esempio, ma non è in alcun modo un elenco esaustivo. Sentiti libero di aggiungere i tuoi consigli.
Presunta struttura predefinita
/wp-content
/plugins
/my-plugin
my-plugin.php
Metodo Model View Controller (MVC)
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.php
my-plugin.php
Le tre parti di MVC:
- Il modello interagisce con il database, interrogando e salvando i dati e contiene la logica.
- Il controller conterrebbe tag modello e funzioni che la vista utilizzerà.
- La vista è responsabile della visualizzazione dei dati forniti dal modello come costruiti dal controller.
Organizzato per metodo di tipo
/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 Plugin Boilerplate
Disponibile su Github
Basato sull'API Plugin , sugli standard di codifica e sugli standard di documentazione .
/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
Metodo vagamente organizzato
/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/
e js/
sarebbe styles/
, images/
e scripts/
.