Работа с jquery в WordPress

Для начала распишу задачу которая у меня была. После настройки WordPress выводил версию библиотеки jquery 1.4 из за плагина бесплатная версия которого не обновлялась еще c 2009 года.  Название плагина «TheTheFly«, уверен что в платной версии было все в порядке, но меня жаба задавила бы покупать его, когда я могу это сделать нужный скрипт или на крайний случай разобраться в том как работает плагин.

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

Вроде как брать должно последнюю версию, но не брало ). Код я переделал без плагина и все работало отлично, но конструкцию которую нашел в плагине, начал разбирать и сейчас дам небольшое описание того что я нашел.

Из кодекса WordPress узнал что функция wp deregister script() нужна для исключения скрипта javascript из регистра WordPress. Причем этой функцией можно убирать не только JQUERY библиотеку, но и любой другой зарегистрированный скрипт, например когда в разных плагинах написанных не корректно появляется конфликт. У меня этот конфликт часто появляется, когда бедкодеры решают что надо включить вместе с плагином еще одну билиотеку jquery. Для использования функции можно писать код следующего вида:

Как можно видеть из примера переменная $handle — это названия сценария, который должен быть удален. Сама функция не возвращает никаких значений и расположена она по адресу wp-includes/functions.wp-scripts.php.

Следующая функция из фрагмента кода это wp_register_script(). Тут особо и рассказывать нечего, просто добавляете в параметр функции, тот скрипт, которых хотите выводить в шапке шаблона WordPress. Функция имеет несколько параметров.

Рассмотрим параметры функции wp_register_script по поряку:

$handle — Название сценария. Должно быть уникальным, поскольку он используется в качестве идентификатора для последующего использования с wp_enqueue_script ().

По умолчанию значение параметра: None

$SRC — URL скрипта, который необходимо добавить в ваш шаблон.

Пример подключения скрипта: » https://example.com/wp-includes/js/scriptaculous/scriptaculous.js «.

Вы никогда не должны жестко указывать URL-адрес в локальных скриптах. Лучше используйте конструкцию get_template_directory_uri, для получения пути от темы WordPress.

По умолчанию значение параметра: None

$deps — массив зарегистрированных сценариев, он показывает, что этот сценарий зависит от скриптов, которые должны быть загружены до загрузки этого сценария. Функция вернет false если не все скрипты были зарегистрированы ранее. Этот параметр обязательный, только если вашему скрипту нужна подгрузка других библиотек или скриптов.

По умолчанию значение параметра: Array ()

$ver — параметр не обязательный, если вам нет нужны использовать версию скрипта. Этот параметр используется для того, чтобы правильная версия отправлялась клиенту, независимо от кэширования. Для отключения можно оставить пустым.

По умолчанию значение параметра: False

$In_footer — обычно скрипты размещены в <head> разделе. Если этот параметр равен false, сценарий помещается в нижней части <body> . Для работы параметра в нижней части шаблона вам необходима функция wp_footer() на месте нее и будет выводиться ваш скрипт. Обратите внимание, что у вас в верхней части сайта также должна быть функция wp_head(), даже если скрипт будет помещен в подвал.

По умолчанию значение параметра: False

Сама функция wp_register_script  не возвращает никаких значений.

Все скрипты, которые можно подключить и они есть в CMS WordPress, по умолчанию перечислены в кодексе, я их перечислять не буду. Читаем тут.

Исходники функции находятся по адресу: wp-includes/functions.wp-scripts.php

После регистрации скрипта пори помощи функции wp_register_script необходимо необходимо включить использование этого самого скрипта в шаблоне WordPress при помощи функции wp_enqueue_script.

Код функции при использовании выглядит следующим образом:

Также эта функция имеет вариации и будет указывать где именно должен включаться скрипт. 

  • wp_enqueue_scripts — для внешней части сайта;
  • admin_enqueue_scripts  — для панели управления;
  • login_enqueue_scripts — для страницы входа.

$handle — уникальное название сценария скрипта. Выше я его описывал уже.

По умолчанию значение параметра: None

$src — параметр указывает путь к скрипту и нужен только в случаи, если WordPress еще не знает о том, где расположен скрипт. Если до вызова этой функции вы не регистрировали вой скрипт функцией wp_register_script.

По умолчанию значение параметра: None

$deps -как и описывалось в предыдущей функции, этот параметр будет содержать массив с идентификаторами скриптов которые должны быть подключены до вызова скрипта.

По умолчанию значение параметра: Array ()

В кодексе WordPress также советуют использовать плагин  Use Google Libraries для того чтобы не было конфликтов с библиотеками при подключении сторонних плагинов.

Пример для подключения CDN-копии jquery библиотеки из google.

Используя фильтр wp_enqueue_scripts (вместо фильтра init, на который ссылаются некоторые статьи на сторонних сайтах), мы избегаем регистрации альтернативной версии jQuery на страницах панели управления, что снижает риск нарушения работы редактора записей при обновлении.

Пример

Добавим и загрузим новый скрипт, который зависит от scriptaculous (это также вызывает загрузку scriptaculous на странице):

 

Загружаем в теме оформления скрипт, зависящий от скрипта в WordPress

Часто требуется, чтобы перед JavaScript-файлами, поставляемыми с темой оформления, был загружен другой JavaScript-файл. WordPress предоставляет API, позволяющий при регистрации скрипта указать его зависимости. Например, тема с приведенным ниже кодом требует, чтобы перед скриптом custom_script.js была загружена библиотека jQuery:

 

Загружаем скрипты плагина только на его страницах

Подробнее из кодекса можно прочесть тут. Там же снизу есть ссылки на английские статьи по подключению скриптов в WordPress. Удачи в разработке!


Купить хостинг WordPress
Репетитор по wordpress
Услуги репетитора онлайн. Список курсов которые я веду
  • Базовый курс по веб-дизайну;
  • Верстка сайтов;
  • Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
  • Разработка сайтов на PHP.
Подробнее читайте на странице репетитор по WordPress
*/

 

Николаенко Максим

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


Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Шаблоны для WordPress
Самый лучший хостинг в Украине
Стабильный хостинг для Drupal