it-roy-ru.com

Включите стороннюю библиотеку Javascript, которая не включена в Wordpress

Я хочу включить третью библиотеку Javascript, в частности LeafletJS, в мой плагин Wordpress. Я подумал, что было бы неплохо просто включить его, не думая о том, что произойдет, если другой плагин включает ту же библиотеку. Возможно, даже в другой (основной) версии. Я обнаружил, что в Wordpress уже есть много популярных библиотек Javascript. Если я хочу использовать один из них, я просто должен сказать Wordpress, чтобы загрузить эти библиотеки. Если каждый разработчик плагинов так делает, проблем не будет, и каждый плагин будет использовать одну и ту же версию этих библиотек. Когда я искал в Интернете, как мне включить сторонние библиотеки, я нашел только много результатов, которые описали этот путь. Но это не поможет мне.

Что, если я хочу включить библиотеку Javascript, которая еще не включена в Wordpress? Есть ли способ, чтобы у моего плагина не было конфликтов с другими плагинами, включающими ту же библиотеку? Прямо сейчас у меня есть эта проблема с плагином, но было бы хорошо иметь решение, которое также работает, если у меня есть эта проблема с темой.

4
JuSchu

Вам нужно использовать wp_script_is , чтобы проверить, включена ли библиотека, которую вы хотите использовать, другим плагином. Как вы можете видеть, дескриптор важен, если вы измените его на whatEverIWant.js, он не будет распознавать библиотеку.

3
Kevin Mamaqi

Нет реального способа, которым разработчики смогли бы достичь этого. Это в основном потому что:

  • Различные плагины могут зависеть от разных версий библиотеки, не имея возможности работать с другой.
  • Не каждый разработчик работает достаточно чисто, чтобы думать о конфликтах при создании чего-либо. Низкокачественная закодированная тема/плагин всегда может вызвать проблемы.
  • Одна и та же библиотека может быть включена под разными именами (из-за небрежности, ошибки и т.д.), И если вы публикуете тему/плагин, вы не всегда будете рядом с клиентом, чтобы проверить эти проблемы.

Однако, если вы используете известную и популярную библиотеку, которая также включена в WordPress, вы можете проверить, загружена ли она уже, с помощью следующей функции:

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

Это вернет true, если скрипт уже распечатан/помещен в очередь/зарегистрирован, так что вы можете использовать его вместе с if(), чтобы решить, следует ли вам печатать его снова или нет.

Но, как я упоминал выше, если имена не совпадают, это не сработает.

1
Jack Johansson