Ce n'est pas une question sur la façon de construire un plugin WordPress. Quels guides, le cas échéant, pourraient être appliqués à la manière de mettre en place l'architecture de fichier d'un plugin.
Certains autres langages de programmation ou bibliothèques ont des méthodes très contrôlées d’organisation des répertoires et des fichiers. Parfois, cela est agaçant et met en évidence la liberté offerte par PHP, mais du côté opposé, les plugins WordPress sont assemblés de la manière que leur auteur détermine.
Il n’ya pas de bonne réponse , mais j’espère pouvoir préciser comment, ainsi que d’autres, construisons des plugins pour les rendre plus conviviaux pour les autres développeurs, plus faciles à déboguer, plus faciles à naviguer et peut-être plus efficaces.
La dernière question: quel est selon vous le meilleur moyen d’organiser un plugin?
Vous trouverez ci-dessous quelques exemples de structures, mais en aucun cas une liste exhaustive. N'hésitez pas à ajouter vos propres recommandations.
Structure supposée par défaut
/wp-content
/plugins
/my-plugin
my-plugin.php
Méthode du contrôleur de vue de modèle (MVC)
/wp-content
/plugins
/my-plugin
/controller
Controller.php
/model
Model.php
/view
view.php
my-plugin.php
Les trois parties de MVC:
- Le modèle interagit avec la base de données, interroge et enregistre des données, et contient une logique.
- Le contrôleur contiendrait des balises de modèle et des fonctions que la vue utiliserait.
- La vue est responsable de l'affichage des données fournies par le modèle tel que construit par le contrôleur.
Organisé par type de méthode
/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
Disponible sur Github
Basé sur l' API de plug-in , les normes de codage et les normes de documentation .
/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
Méthode mal organisée
/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/
et js/
serait styles/
, images/
et scripts/
.