Функция wp_deregister_script()
используется для удаления ранее зарегистрированного скрипта в WordPress. Она позволяет отменить регистрацию скрипта, чтобы предотвратить его подключение на страницах сайта.
Описание
wp_deregister_script()
удаляет скрипт из системы регистрации WordPress. Это может быть полезно, когда вам нужно отключить стандартные скрипты или заменить их своими версиями, например, подключенными с внешнего ресурса (CDN).
Важно отметить, что функция не удаляет скрипт из очереди на выполнение. Для этого используется функция wp_dequeue_script()
. Также существуют некоторые ограничения — критические скрипты для работы админ-панели, такие как ядро jQuery, нельзя удалить без специальных мер предосторожности.
wp_deregister_script( string $handle )
- $handle (строка, обязательный) — Идентификатор скрипта, который необходимо удалить из регистрации.
Функция ничего не возвращает (null
).
Когда использовать wp_deregister_script()
- Если вы хотите отключить скрипт, зарегистрированный темой или плагином.
- Когда вам нужно заменить стандартные скрипты на сторонние версии, например, CDN.
- Для удаления конфликтующих скриптов, которые могут вызывать ошибки или некорректную работу.
Пример 1: Удаление скрипта jQuery
Предположим, вам нужно удалить базовый скрипт jQuery, который по умолчанию подключается WordPress. Для этого вы можете использовать следующий код в файле functions.php
вашей темы:
add_action( 'wp_enqueue_scripts', 'remove_jquery_script', 100 );
function remove_jquery_script() {
wp_deregister_script( 'jquery' );
}
Здесь мы используем идентификатор jquery
, который WordPress использует для подключения jQuery. Приоритет 100 гарантирует, что функция выполнится после того, как jQuery был зарегистрирован.
Пример 2: Загрузка jQuery с Google CDN
Если вам нужно заменить стандартную версию jQuery, загружаемую с WordPress, на версию с Google CDN, вы можете зарегистрировать новую версию скрипта следующим образом:
add_action( 'wp_enqueue_scripts', 'load_jquery_from_cdn' );
function load_jquery_from_cdn() {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js', array(), null, true );
wp_enqueue_script( 'jquery' );
}
Этот код удаляет стандартную регистрацию jQuery, а затем регистрирует и подключает новую версию скрипта с CDN. Параметр true
в wp_register_script()
указывает, что скрипт должен быть загружен в конце страницы (в футере).
Пример 3: Отключение скрипта на определенных страницах
Иногда необходимо отключить скрипт только на определенных страницах. Для этого можно использовать условные теги WordPress, например, is_page()
:
add_action( 'wp_enqueue_scripts', 'conditionally_deregister_script', 20 );
function conditionally_deregister_script() {
if ( is_page( 'contact' ) ) {
wp_deregister_script( 'contact-form-script' );
}
}
Этот код отключает скрипт с идентификатором contact-form-script
только на странице с заголовком «contact».
Пример 4: Удаление конфликтующих скриптов
Если плагин или тема добавляют конфликтующий скрипт, вы можете его удалить, используя wp_deregister_script()
:
add_action( 'wp_enqueue_scripts', 'remove_conflict_script', 99 );
function remove_conflict_script() {
wp_deregister_script( 'conflicting-script' );
}
Здесь мы удаляем скрипт с идентификатором conflicting-script
, который может вызывать проблемы на сайте.
Отличие от wp_dequeue_script()
wp_deregister_script()
: Полностью удаляет регистрацию скрипта, делая его недоступным до повторной регистрации. Подходит для отключения скриптов, которые больше не нужны.wp_dequeue_script()
: Удаляет скрипт из очереди на вывод, но регистрация скрипта остается в системе. Используется, если скрипт может понадобиться в будущем, но его нужно временно отключить.
Пример 5: Комбинирование wp_deregister_script()
и wp_enqueue_script()
Иногда нужно перерегистрировать скрипт после его удаления, например, для изменения его параметров. Этот процесс можно осуществить, удалив старую версию скрипта и затем зарегистрировав новую:
add_action( 'wp_enqueue_scripts', 'replace_script_with_custom_version' );
function replace_script_with_custom_version() {
wp_deregister_script( 'example-script' );
wp_register_script( 'example-script', get_template_directory_uri() . '/js/custom-script.js', array(), '1.0', true );
wp_enqueue_script( 'example-script' );
}
В этом примере скрипт example-script
удаляется и заменяется на кастомную версию с другим файлом и параметрами.
Заключение
Функция wp_deregister_script()
является важным инструментом для управления скриптами в WordPress. Она позволяет удалять скрипты, которые могут вызывать конфликты или не требуются на сайте, а также заменять их на более актуальные версии, например, загружаемые с внешних CDN.