Как я могу избежать многократной загрузки скриптов jQuery? - PullRequest
3 голосов
/ 18 октября 2010

На своем сайте я загружаю скрипт jQuery UI, используя следующий код:

wp_enqueue_script('nf-jquery-ui','http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js')

В своем плагине я использую следующий код:

wp_enqueue_script('wp_filebrowser-jqueryui','http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.js')

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

Да, я знаю, что могу удалить его либо с моего плагина, либо с моего сайта. Но дело в том, что любой может загрузить мой плагин, и он, возможно, уже загружает скрипт jQuery UI.

Как можно избежать добавления сценария дважды?

Ответы [ 3 ]

2 голосов
/ 18 октября 2010

Вы можете отменить регистрацию первого скрипта, поместив эту строку в свой плагин ...

wp_deregister_script ('nf-jquery-ui');

перед вызовом вашего enqueue_script ...wp_enqueue_script ('wp_filebrowser-jqueryui', ...

Это должно удалить первый вызов jQuery на всех страницах, которые используют ваш плагин.

2 голосов
/ 18 октября 2010

Этот пост о переполнении стека может быть полезен для проверки того, был ли загружен пользовательский интерфейс jQuery -

0 голосов
/ 18 октября 2010

API WP сообщает , что первый параметр является обработчиком.Это, вероятно, используется, поэтому скрипт вставляется только один раз (хотя я не могу сказать точно).

Он также определяет обработчики для jQuery и jQuery UI, которые вы, вероятно, должны использовать.Эти обработчики предназначены для включенных сценариев, и там указан jQuery, а также jQuery-ui.Если вы хотите обновить, рассмотрите возможность передачи версии в функцию wp_ или просто замените файл сценария jQuery, который уже используется / упакован с помощью wp.

...