Функция WP_REGISTER_SCRIPT() в WordPress
Введение
Функция wp_register_script()
позволяет регистрировать новый скрипт в WordPress, чтобы его можно было подключить позже с помощью функции wp_enqueue_script()
. Это полезно, когда вам нужно управлять загрузкой JavaScript-файлов на вашем сайте.
Возвращаемые значения
Функция возвращает:
true
, если скрипт успешно зарегистрирован.false
, если произошла ошибка.
Использование функции
Синтаксис функции выглядит так:
wp_register_script( $handle, $src, $deps, $ver, $args );
Параметры
-
$handle (string, обязательный) — Уникальное имя для скрипта. Это имя будет использоваться при его подключении.
-
$src (string|false, обязательный) — Полный URL скрипта или путь к скрипту относительно корневой директории WordPress. Если установить
false
, то скрипт будет использоваться как псевдоним для других, от которых он зависит. -
$deps (array, необязательный) — Массив хэндлов зарегистрированных скриптов, от которых зависит данный скрипт. По умолчанию - пустой массив.
-
$ver (string|true|false|null, необязательный) — Версия скрипта, добавляемая к URL в виде строки для предотвращения кэширования. Если установить
false
, версия будет автоматически равна текущей версии WordPress. Установитеnull
, чтобы не добавлять версию. -
$args (array|true|false, необязательный) — Дополнительные настройки загрузки скрипта. Может быть булевым значением, определяющим, будет ли скрипт выводиться в подвале страницы. По умолчанию - пустой массив. Варианты:
strategy (string)
— Стратегия загрузки, может быть 'defer' или 'async'.in_footer (true|false)
— Выводить ли скрипт в подвале. По умолчаниюfalse
.
Примеры
1. Подключение jQuery из Google
Чтобы подключить jQuery из CDN Google, вы можете воспользоваться специальной статьей на эту тему.
2. Подключение внешнего скрипта (простой способ)
add_action( 'init', 'register_remote_scripts' );
add_action( 'wp_enqueue_scripts', 'add_remote_scripts' );
function register_remote_scripts(){
wp_register_script( 'someScript-js', 'https://domain.com/someScript.js', '', '', true );
}
function add_remote_scripts(){
wp_enqueue_script( 'someScript-js' );
}
Или более компактный вариант:
add_action( 'wp_enqueue_scripts', 'add_remote_scripts' );
function add_remote_scripts(){
wp_enqueue_script( 'someScript-js', 'https://domain.com/someScript.js', '', '', true );
}
3. Зависимость одного скрипта от другого
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' );
function my_enqueue_scripts(){
wp_register_script( 'first', get_template_directory_uri() . '/js/first.js' );
wp_enqueue_script( 'second', get_template_directory_uri() . '/js/second.js', array( 'first' ) );
}
В этом случае first.js
будет загружен перед second.js
, только если second.js
будет подключен.
4. Отдельная регистрация скрипта и его подключение
add_action( 'init', 'register_myscripts' );
add_action( 'wp_enqueue_scripts', 'add_myscripts' );
// Регистрируем скрипт
function register_myscripts(){
$url = get_template_directory_uri() . '/myscript.js';
wp_register_script( 'myfirstscript', $url, ['jquery', 'jquery-ui'], 'v2.0', true );
}
// Подключаем скрипты
function add_myscripts() {
wp_enqueue_script( 'myfirstscript' );
}
5. Регистрация и подключение скрипта сразу
Если вы знаете, что файл будет нужен только на одной странице, можно зарегистрировать его сразу:
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
function my_scripts_method() {
$script_url = plugins_url( '/js/newscript.js', __FILE__ );
wp_enqueue_script( 'custom-script', $script_url, ['jquery'], '1.0', true );
}
Примечания
- Для более подробной информации смотрите описание функции
wp_enqueue_script()
. - Обратите внимание на другие полезные функции, связанные со скриптами, такие как
wp_add_inline_script()
,wp_dequeue_script()
, и другие.
Изменения
- Версия 2.1.0: Введена функция.
- Версия 4.3.0: Добавлено возвращаемое значение.
- Версия 6.3.0: Параметр
$in_footer
был изменен на$args
типа массив.
Теперь вы знаете, как зарегистрировать и подключить скрипты в WordPress!