Je développe quelques plugins open-source et un thème (tous faisant partie d'une "suite") qui utilisent tous la même bibliothèque PHP tierce. Je me demande quelle est la meilleure façon de l'inclure dans Wordpress. Voici quelques réflexions:
- le mettre dans l'un des plugins et exiger que ce plugin soit installé et activé
- créer un plugin spécial "core" qui ne fait rien mais l'inclure
- mettre directement dans
wp-content
Des réflexions à ce sujet?
Réponses:
Si chaque plugin / thème fonctionne seul, alors vous devriez probablement déposer la bibliothèque dans chaque thème / plugin.
Ensuite, vérifiez simplement s'il existe une classe ou une fonction de la bibliothèque tierce avant de l'exiger.
ou
Alternativement, vous pouvez encapsuler chaque fonction / classe / variable / constante de la bibliothèque tierce pour vérifier si elle existe, comme les fonctions enfichables .
Si tous les plugins et le thème dépendent les uns des autres, alors cela n'a pas vraiment de sens de les diviser et vous devriez probablement repenser cela.
la source
library
dossier dans chaque plugin / thème. Ensuite, dans votre fichier de plugin principal, exécutez la vérification et incluez-les si nécessaire.Liez tout le code dépendant à une action dans le plugin de bibliothèque.
Exemple de code pour le plugin de bibliothèque:
Dans votre code dépendant, ne faites rien avant l'appel de l'action:
La bibliothèque gère toutes les parties de base: vérifiez la bonne version de PHP, les constantes WordPress, les configurations multi-sites, etc.
L'autre code ne fera rien si l'action
'library_loaded'
n'est pas appelée.la source
Ajoutant à répondre par chrisguitarguy, si vos bibliothèques sont sous forme de classes PHP, alors vous pouvez utiliser spl_autoload_register () pour charger ces classes si elles n'ont pas déjà été chargées par un autre plugin. Vous pouvez ensuite regrouper les bibliothèques dans votre plugin et simplement les utiliser, en vous appuyant sur le chargeur de classe pour les inclure le cas échéant. Vous pouvez également utiliser le chargeur de classe pour charger les classes de votre propre plugin.
par exemple
la source
Puisqu'il n'y a pas de répertoire officiel des fournisseurs , je choisirais le plugin "core" qui ne fait rien mais inclut la bibliothèque. Vous faites ensuite en sorte que vos plugins nécessitent ce plugin principal.
Placer la bibliothèque dans l'un de vos vrais plugins obligerait l'utilisateur à activer ce plugin même s'il pourrait ne jamais vouloir utiliser ses fonctionnalités. Un plugin core séparé semble plus propre.
Le mettre directement dans le contenu wp ressemble à la pire solution.
la source