скрипт очереди wp-jQuery не загружается


Я добавил этот код, чтобы добавить jQuery

wp_enqueue_script( 'jqueryadd','http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js', array(),'22.23',true );

Но я думаю, что в этом нет необходимости, так как я считаю, что wordpress поставляется с jquery, а скрипт wp_enqueue предоставляет возможность включать jquery или нет.

Но это скрипт mdbootstrap. если я удалю приведенный выше код, он выдаст мне ошибку, это консоль, которая $ не является функцией он отлично работает, если я ставлю jquery в очередь над ним.

wp_enqueue_script( 'md-boot','https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.5.4/js/mdb.min.js', array( 'jquery' ),'1.25',true );

Я понятия не имею, что происходит не так. пожалуйста, помогите спасибо

Author: Latheesh V M Villa, 2018-08-01

1 answers

Похоже, что "mdbootstrap" построен таким образом, что он не поддерживает jQuery в режиме без конфликтов, как это работает в WordPress. Согласно этой теме форума они собирались добавить поддержку 2 года назад, но, по-видимому, так и не сделали этого.

Если вам необходимо использовать эту библиотеку, то я думаю, что самое простое решение без прямого изменения библиотеки - добавить эту строку рядом с вашим кодом, который ставит скрипт в очередь:

wp_add_inline_script( 'jquery-core', 'window.$ = jQuery;' );

, который поместит jQuery WordPress в переменную $, чтобы mdbootstrap мог ее использовать. Просто имейте в виду, что это может вызвать проблемы, если вы запустите любые другие сценарии, которые могут использовать символ $ в качестве глобальной переменной.

Это должно устранить конкретную ошибку, о которой вы сообщаете здесь ("$ не является функцией"), но я не могу гарантировать, что mdbootstrap работает с версией jQuery в комплекте с WordPress. Если это не так, то ваш единственный вариант - загрузить другую версию, но тогда вам придется иметь дело с возможностью того, что это может вызвать проблемы с другими плагинами, ожидающими комплектную версию.

 3
Author: Jacob Peattie, 2018-08-01 14:36:26