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-pluginmy-plugin.php
Méthode du contrôleur de vue de modèle (MVC)
/wp-content/plugins/my-plugin/controllerController.php
/modelModel.php
/viewview.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/adminadmin.php
/assetscss/images/
/classesmy-class.php
/langmy-es_ES.mo
/templatesmy-template.php
/widgetsmy-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/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
Méthode mal organisée
/wp-content/plugins/my-plugincss/images/js/my-admin.phpmy-class.phpmy-template.phpmy-widget.phpmy-plugin.php
css/, images/et js/serait styles/, images/et scripts/.