Недавно читал обзор кода для плагина. Плагин работал нормально, но разработчик сделал не в соответствии с рекомендациями по загрузке внешних JavaScript. WordPress имеет в системе управления очередями для добавления внешних скриптов и стилей, которая помогает предотвратить конфликтов плагинов. Поскольку у большинства пользователей работают более чем один плагин на их сайте, это всегда хорошо для разработчиков следовать лучшей практике. В этой статье рассказывается, как правильно добавить скрипты и стили в WordPress. Это будет очень полезно для начинающих заниматься изучением тем WordPress и только начали разрабатывать плагины.
В WordPress есть wp_head
функция, которая позволяет загружать в головной раздел сайта. Для тех, кто не знает лучше просто добавлять свои скрипты, используя примерно таким кодом:
<?php add_action('wp_head', 'wpa_bad_script'); function wpa_bad_script() { echo 'здесь должен быть код jQuery'; } ?>
А приведенный выше код – это легкий путь, но неверный способ добавления скриптов. Например, если вы загрузите jQuery вручную, и другой плагин, который также использует jQuery загружает его по надлежащему пути, то у вас библиотека jQuery загружается два раза. Также возможно, что две разные версии, которые также могут привести к конфликтам.
Давайте рассмотрим правильный способ как сделать это.
WordPress имеет сильное сообщество программистов. Тысячи разработчиков по всему миру разрабатывают темы и плагины для WordPress. Чтобы убедиться, что все работает должным образом и никто не наступает на чужие носки, WordPress имеет метод enqueue функции сценария. Эта функция позволяет систематически загружать java-скрипты и стили. С помощью функции wp_enqueue_script
, вы указываете WordPress когда загружать скрипт, где загрузить его, и каковы его зависимости.
Это позволяет каждому применять встроенные библиотеки JavaScript, которые идут в комплекте с WordPress вместо того чтобы загружать один и тот же сторонний скрипт несколько раз. Это также помогает уменьшить затраты на загрузку страницы и избежать конфликтов с другими темами и плагинами.
Загрузка скриптов надлежащим образом в WordPress очень легко. Ниже приведен пример кода, что бы вы вставили в ваш файл плагина или в вашу тему файла functions.php где загружается нормально скрипты в WordPress.
<?php function wpa_adding_scripts() { wp_register_script('moy_amazing_script', plugins_url('moy_script.js', __FILE__),array('jquery'),'1.1', true); wp_enqueue_script('moy_amazing_script'); } add_action( 'wp_enqueue_scripts', 'wpa_adding_scripts' ); ?>
Объяснение:
Мы начали регистрировать наш скрипт через функцию wp_register_script()
. Эта функция имеет 5 параметров:
После предоставления всех параметров в wp_register_script, мы можем просто вызвать скрипт в wp_enqueue_script (), которая заставляет все работать.
Сейчас Вы можете задаться вопросом, зачем мы идем на дополнительный шаг, чтобы зарегистрировать сценарий сначала, а потом отправляю его? Это позволит другим владельцем сайта, чтобы вычеркнуть из списка ваш сценарий, если они хотят без изменения основного кода вашего плагина.
Как и добавление скриптов, Вы также можете добавлять свои таблицы стилей. Пример ниже:
<?php function wpa_adding_styles() { wp_register_script('moy_stylesheet', plugins_url('moy-stylesheet.css', __FILE__)); wp_enqueue_script('moy_stylesheet'); } add_action( 'wp_enqueue_scripts', 'wpa_adding_styles' ); ?>
Обратите внимание, что мы воспользовались wp_enqueue_scripts повторно для обоих стилей и скриптов. Несмотря на название, эта функция работает для обоих.
В примерах выше мы использовали plugins_url, чтобы указать на местоположение скрипта или стиля мы хотели ставить в очередь. Однако, если вы используете скрипты, добавляют функцию в вашу тему, затем просто использовать get_template_directory_uri()
вместо этого. Если вы работаете с дочерней темой, а затем использовать get_stylesheet_directory_uri()
. Ниже приведен пример кода:
<?php function wpa_adding_scripts() { wp_register_script('moy_amazing_script', get_template_directory_uri() . '/js/amazing_script.js',array('jquery'),'1.1', true); wp_enqueue_script('moy_amazing_script'); } add_action( 'wp_enqueue_scripts', 'wpa_adding_scripts' ); ?>
Надеюсь, данная статья поможет вам в разработке JavaScript и стилей в WordPress для тем и плагинов. Для вопросов и комментариев, оставьте комментарий ниже.