Функция wp_dequeue_script()
используется для удаления ранее зарегистрированного и добавленного в очередь скрипта. Эта функция не удаляет скрипт полностью, а только исключает его из очереди вывода на странице, в отличие от wp_deregister_script()
, которая полностью отменяет регистрацию скрипта.
Описание
Функция полезна в тех случаях, когда вам нужно отключить или заменить скрипты, которые добавляются темами или плагинами, но при этом вы хотите сохранить возможность их использования в других местах. Важно помнить, что wp_dequeue_script()
нужно вызывать после того, как скрипт был добавлен в очередь, иначе она не сработает.
wp_dequeue_script( string $handle )
- $handle (string) — Идентификатор скрипта, который нужно убрать из очереди.
Функция ничего не возвращает (null
).
Когда использовать wp_dequeue_script()
- Когда нужно временно убрать скрипт из вывода на странице.
- Когда подключенный скрипт конфликтует с другим, и его нужно исключить для устранения проблемы.
- Если необходимо отключить загружаемый по умолчанию скрипт, например, jQuery, и заменить его другим решением.
Пример 1: Отключение jQuery
Допустим, вам не нужен jQuery на определенной странице или вы хотите заменить его своей версией. Вы можете использовать следующий код для удаления jQuery:
add_action( 'wp_print_scripts', 'remove_jquery_script', 100 );
function remove_jquery_script() {
wp_dequeue_script( 'jquery' );
wp_deregister_script( 'jquery' );
}
В этом примере мы сначала отменяем подключение jquery
с помощью wp_dequeue_script()
, а затем удаляем его регистрацию полностью с помощью wp_deregister_script()
.
Пример 2: Отключение jQuery UI Core
Допустим, тема или плагин подключает jquery-ui-core
, который вам не нужен. Чтобы удалить его из очереди, используйте следующий код:
add_action( 'wp_print_scripts', 'dequeue_jquery_ui_core', 100 );
function dequeue_jquery_ui_core() {
wp_dequeue_script( 'jquery-ui-core' );
}
Здесь мы отменяем подключение jquery-ui-core
с приоритетом 100, чтобы убедиться, что функция срабатывает после того, как скрипт был добавлен в очередь.
Пример 3: Отключение скрипта на определенной странице
Иногда необходимо отключить скрипт только на определенной странице. Допустим, на странице с идентификатором 42 вы не хотите загружать скрипт my-script
. В этом случае используйте условие внутри функции:
add_action( 'wp_print_scripts', 'remove_my_script_on_specific_page', 100 );
function remove_my_script_on_specific_page() {
if ( is_page( 42 ) ) {
wp_dequeue_script( 'my-script' );
}
}
Этот код проверяет, если текущая страница имеет ID 42, и если это так, отменяет подключение скрипта my-script
.
Пример 4: Отключение скрипта, добавленного плагином
Иногда плагины подключают скрипты, которые вы хотите отключить. Например, если плагин добавляет fancy-script
, а он вам не нужен:
add_action( 'wp_print_scripts', 'remove_fancy_script', 100 );
function remove_fancy_script() {
wp_dequeue_script( 'fancy-script' );
}
Этот код исключает скрипт fancy-script
из очереди на вывод.
Отличие от wp_deregister_script()
Важно различать функции wp_dequeue_script()
и wp_deregister_script()
. Вот ключевые различия:
wp_dequeue_script()
: Удаляет скрипт из очереди вывода, но скрипт всё ещё зарегистрирован в системе и может быть добавлен снова.wp_deregister_script()
: Полностью удаляет скрипт из регистраций WordPress, делая его недоступным до повторной регистрации.
Если вам нужно только отменить вывод скрипта, используйте wp_dequeue_script()
. Если нужно полностью отменить регистрацию скрипта, используйте wp_deregister_script()
.
Заключение
Функция wp_dequeue_script()
предоставляет гибкость в управлении подключением скриптов в WordPress, позволяя вам отключать ненужные или конфликтующие скрипты на страницах. Она особенно полезна при работе с темами и плагинами, которые могут подключать ненужные скрипты.