web-dev-qa-db-fra.com

Inclure une bibliothèque Javascript tierce qui n'est pas incluse dans Wordpress

Je souhaite inclure une troisième bibliothèque Javascript, notamment LeafletJS, dans mon plugin Wordpress. Je pensais que ce ne serait pas une bonne idée de l'inclure sans penser à ce qui se passe si un autre plugin inclut la même bibliothèque. Peut-être même dans une autre version (majeure). J'ai découvert que Wordpress contenait déjà de nombreuses bibliothèques Javascript populaires. Si je veux utiliser l'un de ceux-ci, je dois simplement dire à Wordpress de charger ces bibliothèques. Si tous les développeurs de plugins le font ainsi, il n'y aura aucun problème et chaque plugin utilisera la même version de ces bibliothèques. Lorsque j'ai cherché sur le Web pour savoir comment inclure des bibliothèques tierces, je n'ai trouvé que de nombreux résultats décrits de cette manière. Mais ça ne m'aidera pas.

Et si je veux inclure une bibliothèque Javascript qui n'est pas déjà incluse dans Wordpress? Y a-t-il un moyen pour que mon plugin ne soit pas en conflit avec d'autres plugins qui incluent la même bibliothèque? En ce moment, j'ai ce problème avec un plugin, mais ce serait bien d'avoir une solution qui fonctionne aussi si j'ai ce problème avec un thème.

4
JuSchu

Vous devez utiliser wp_script_is afin de vérifier si la bibliothèque que vous souhaitez utiliser a déjà été incluse dans un autre plugin. Comme vous pouvez voir que le handle est important, si vous le changez en whatEverIWant.js, il ne reconnaîtra pas la bibliothèque.

3
Kevin Mamaqi

Il n’existe aucun moyen réel pour les développeurs d’atteindre cet objectif. C'est principalement parce que:

  • Différents plugins peuvent dépendre de différentes versions d'une bibliothèque, ne pouvant pas fonctionner avec une autre.
  • Tous les développeurs ne travaillent pas assez proprement pour penser aux conflits tout en créant quelque chose. Un thème/plug-in codé de basse qualité peut toujours causer des problèmes.
  • La même bibliothèque peut être incluse sous différents noms (par négligence, erreur, etc.) et si vous publiez un thème/plug-in, vous ne serez pas toujours là pour que le client vérifie ces problèmes.

Toutefois, si vous utilisez une bibliothèque connue et populaire, également incluse dans WordPress, vous pouvez vérifier si elle est déjà chargée à l'aide de la fonction suivante:

wp_script_is( $name, $list = 'enqueued' );

Ceci retournera true si le script est déjà imprimé/mis en file d'attente/enregistré afin que vous puissiez l'utiliser avec la conjonction d'un if() pour décider si vous devez l'imprimer à nouveau ou non.

Mais comme je l'ai mentionné ci-dessus, si les noms ne sont pas les mêmes, cela ne fonctionnera pas.

1
Jack Johansson