wp_deregister_style()
удаляет регистрацию стилей, которые были добавлены в систему WordPress. Эта функция может быть полезна, если вы хотите удалить стили, зарегистрированные темой или плагином, чтобы, например, заменить их своими файлами или убрать конфликтующие стили.
Важно: функция не удаляет файл стилей из вывода, если он уже был добавлен в очередь на вывод. Для этого используйте функцию wp_dequeue_style()
.
wp_deregister_style( string $handle )
- $handle (строка, обязательный) — Идентификатор стиля, который был использован при регистрации через
wp_register_style()
илиwp_enqueue_style()
.
Функция не возвращает никаких значений (null
).
Использование
wp_deregister_style()
полезна для замены существующих стилей на пользовательские версии, удаления ненужных стилей или решения конфликтов между стилями тем и плагинов.
Пример 1: Удаление стиля с идентификатором my_style
Предположим, вы хотите удалить ранее зарегистрированный стиль с идентификатором my_style
. Это можно сделать следующим образом:
add_action( 'init', 'remove_my_style_stylesheet', 99 );
function remove_my_style_stylesheet() {
wp_deregister_style( 'my_style' );
}
Здесь мы используем wp_deregister_style()
для удаления регистрации стиля my_style
. Приоритет 99 гарантирует, что функция выполнится после регистрации стилей.
Пример 2: Замена стилей на пользовательский
Если вам нужно заменить стили, зарегистрированные темой или плагином, вы можете сначала удалить их, а затем зарегистрировать и подключить новый файл стилей:
add_action( 'wp_enqueue_scripts', 'replace_default_stylesheet', 20 );
function replace_default_stylesheet() {
// Убираем старый стиль
wp_deregister_style( 'theme-default-style' );
// Регистрируем новый стиль
wp_register_style( 'custom-style', get_stylesheet_directory_uri() . '/css/custom-style.css', false, '1.0.0' );
// Подключаем новый стиль
wp_enqueue_style( 'custom-style' );
}
В этом примере мы удаляем стиль с идентификатором theme-default-style
и заменяем его новым стилем с идентификатором custom-style
, который загружается из папки текущей темы.
Пример 3: Удаление стилей только на определенной странице
Вы можете использовать условные теги WordPress, чтобы отключить стили только на конкретных страницах. Например, если вам нужно удалить стили только на странице «Контакты»:
add_action( 'wp_enqueue_scripts', 'remove_styles_on_contact_page', 20 );
function remove_styles_on_contact_page() {
if ( is_page( 'contact' ) ) {
wp_deregister_style( 'contact-page-style' );
}
}
Этот код удаляет стиль с идентификатором contact-page-style
, только если открыта страница с заголовком «contact».
Пример 4: Отключение стилей плагина
Если плагин добавляет стили, которые вам не нужны, вы можете отключить их через wp_deregister_style()
. Например:
add_action( 'wp_enqueue_scripts', 'remove_plugin_style', 20 );
function remove_plugin_style() {
wp_deregister_style( 'plugin-stylesheet' );
}
Этот код удаляет стиль с идентификатором plugin-stylesheet
, который был зарегистрирован плагином.
Пример 5: Использование wp_deregister_style()
и wp_dequeue_style()
Если вам нужно не только отменить регистрацию стиля, но и удалить его из очереди на вывод, вам также следует использовать функцию wp_dequeue_style()
:
add_action( 'wp_enqueue_scripts', 'dequeue_and_deregister_style', 20 );
function dequeue_and_deregister_style() {
wp_dequeue_style( 'example-style' );
wp_deregister_style( 'example-style' );
}
Этот код удаляет стиль example-style
как из очереди на вывод, так и из регистрации.
Заключение
Функция wp_deregister_style()
полезна для удаления стилей, зарегистрированных темами и плагинами. Она может применяться для решения конфликтов, замены стилей на пользовательские версии или отключения ненужных стилей на определенных страницах.