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-pluginmy-plugin.php
Metodo Model View Controller (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.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/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-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/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
Metodo vagamente organizzato
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/e js/sarebbe styles/, images/e scripts/.