wake-up-neo.com

Schließen Sie die Javascript-Bibliothek eines Drittanbieters ein, die nicht in Wordpress enthalten ist

Ich möchte eine Drittanbieter-Javascript-Bibliothek, insbesondere LeafletJS, in mein Wordpress-Plugin aufnehmen. Ich dachte, es wäre keine gute Idee, es einfach einzuschließen, ohne darüber nachzudenken, was passiert, wenn ein anderes Plugin dieselbe Bibliothek enthält. Vielleicht sogar in einer anderen (Haupt-) Version. Ich fand heraus, dass Wordpress bereits viele beliebte Javascript-Bibliotheken enthält. Wenn ich eines davon verwenden möchte, muss ich nur Wordpress anweisen, diese Bibliotheken zu laden. Wenn jeder Plugin-Entwickler dies so macht, gibt es keine Probleme und jedes Plugin verwendet dieselbe Version dieser Bibliotheken. Als ich im Web nach Möglichkeiten gesucht habe, Bibliotheken von Drittanbietern einzubeziehen, habe ich nur viele Ergebnisse gefunden, die auf diese Weise beschrieben wurden. Aber das hilft mir nicht weiter.

Was ist, wenn ich eine Javascript-Bibliothek einbinden möchte, die noch nicht in Wordpress enthalten ist? Gibt es eine Möglichkeit, dass mein Plugin keine Konflikte mit anderen Plugins aufweist, die dieselbe Bibliothek enthalten? Im Moment habe ich dieses Problem mit einem Plugin, aber es wäre schön, eine Lösung zu haben, die auch funktioniert, wenn ich dieses Problem mit einem Thema habe.

4
JuSchu

Sie müssen wp_script_is verwenden, um zu überprüfen, ob die Bibliothek, die Sie verwenden möchten, bereits von einem anderen Plug-In aufgenommen wurde. Wie Sie sehen, ist das Handle wichtig. Wenn Sie es in whatEverIWant.js ändern, wird die Bibliothek nicht erkannt.

3
Kevin Mamaqi

Es gibt keinen wirklichen Weg, wie Entwickler dies erreichen könnten. Dies liegt hauptsächlich an:

  • Verschiedene Plugins hängen möglicherweise von der jeweiligen Version einer Bibliothek ab und können nicht mit einer anderen zusammenarbeiten.
  • Nicht jeder Entwickler arbeitet sauber genug, um an Konflikte zu denken, während er etwas erstellt. Ein schlecht codiertes Theme/Plugin kann immer Probleme verursachen.
  • Dieselbe Bibliothek kann unter verschiedenen Namen enthalten sein (aufgrund von Unachtsamkeit, Fehlern usw.). Wenn Sie ein Theme/Plugin veröffentlichen, werden Sie nicht immer für den Kunden da sein, um nach diesen Problemen zu suchen.

Wenn Sie jedoch eine bekannte und beliebte Bibliothek verwenden, die auch in WordPress enthalten ist, können Sie mit der folgenden Funktion überprüfen, ob sie bereits geladen ist:

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

Dies gibt true zurück, wenn das Skript bereits gedruckt/in die Warteschlange gestellt/registriert ist, sodass Sie es zusammen mit einer if() verwenden können, um zu entscheiden, ob Sie es erneut drucken möchten oder nicht.

Aber wie oben erwähnt, funktioniert das nicht, wenn die Namen nicht gleich sind.

1
Jack Johansson