Intereting Posts
Дублировать уведомления для регистрации нового пользователя Куки-файлы в шаблоне Подсчет и мониторинг Сколько запросов используется в моем скрипте Можем ли мы использовать данные веб-сайта, содержащие wp rest api plugin? Принудительный псевдоним как display_name в настраиваемом шаблоне профиля редактирования Невозможно получить предстоящие события для пользовательских сообщений Как я могу отображать пользовательские столбцы пользовательского столбца и его содержимое в виджетах панели мониторинга? Резервное копирование файлов Параметры настраиваемого поля класса WP_Query Временная почта и твит? как показывать изображения без передачи в файл timthumb.php для изменения размера Как отобразить Обновленную дату с последнего сообщения для списка категорий Тема не отображается Публиковать сообщения определенной категории на определенные страницы запрос данных через $ wpdb и get_row

Удалить только стили, но не встроенный стиль, добавленный с помощью wp_add_inline_style

У меня есть две строки ниже на моей родительской теме:

wp_enqueue_style('theme-dynamic-styles', get_template_directory_uri() . '/custom.css'); wp_add_inline_style('theme-dynamic-styles', $output); 

этот пользовательский css, который я хочу удалить из дочерней темы, но и таблица стилей, и встроенный стиль используют одно и то же имя дескриптора – theme-dynamic-styles , поэтому оба они были удалены. Есть ли способ удалить только статическую таблицу стилей, но не встроенный стиль, добавленный с помощью wp_add_inline_style ?

wp_add_inline_style должен сопровождать существующий стиль в wp_add_inline_style . Таким образом, в тот момент, когда вы отменили или отменили регистрацию этого стиля, связанный встроенный стиль также будет удален или отменен.

Чтобы этого избежать, сначала необходимо получить встроенный стиль, а затем удалить его.

Способ-1:

Если после переопределения дескриптора theme-dynamic-styles вы не хотите ставить в очередь новый на своем месте, тогда вам придется ставить в очередь встроенный стиль с таблицей стилей по умолчанию. Например, предположим, что имя дескриптора стиля по умолчанию – 20 twentyseventeen-style . В этом случае ваш КОД будет выглядеть так:

 function wpse262235_dequeue_style() { $handle = 'theme-dynamic-styles'; // get the inline style (returns as array) $inline_styles = wp_styles()->get_data( $handle, 'after' ); wp_dequeue_style( $handle ); if( ! empty( $inline_styles ) ) { wp_add_inline_style( 'twentyseventeen-style', implode( "\n", $inline_styles ) ); } } // make sure the priority is higher than the hook that enqueued the style add_action( 'wp_enqueue_scripts', 'wpse262235_dequeue_style', 20 ); 

Способ-2:

Если после деактивации дескриптора theme-dynamic-styles вы хотите вставить новое место на своем месте с тем же именем дескриптора, то вам придется отменить theme-dynamic-styles , dequeuing недостаточно. В этом случае ваш КОД будет выглядеть так:

 function wpse262235_dequeue_style() { $handle = 'theme-dynamic-styles'; $inline_styles = wp_styles()->get_data( $handle, 'after' ); wp_deregister_style( $handle ); // a new style from child theme with the same handle wp_enqueue_style( $handle, get_stylesheet_directory_uri() . '/custom.css' ); if( ! empty( $inline_styles ) ) { wp_add_inline_style( $handle, implode( "\n", $inline_styles ) ); } } add_action( 'wp_enqueue_scripts', 'wpse262235_dequeue_style', 20 );