Удалить Gutenberg CSS

У меня есть плагин Gutenberg, установленный в WordPress v4.9.8, и я пытаюсь удалить CSS, который поставляется с ним, чтобы я мог предоставить свой собственный.

Это лист, который включается:

<link rel='stylesheet' id='wp-block-library-css'  href='/wp-content/plugins/gutenberg/build/block-library/style.css?ver=1535795173' type='text/css' media='all' />

Я пробовал следующее:

add_action( 'wp_print_styles', 'wps_deregister_styles', 100 );
function wps_deregister_styles() {
    wp_dequeue_style( 'wp-block-library-css' );
    wp_deregister_style( 'wp-block-library-css' );
}

Как и его варианты, но файл сохраняется. Как мне его удалить?


person Matt Saunders    schedule 11.09.2018    source источник
comment
Этот вопрос не не по теме, но есть шанс, что вы можете найти лучший, возможно, уже существующий ответ на WordPress Разработка.   -  person David says reinstate Monica    schedule 11.09.2018
comment
Вместо этого используйте wp_enqueue_scripts. попробуйте add_action( 'wp_enqueue_scripts', 'wps_deregister_styles', 100 );   -  person Tamil Selvan C    schedule 11.09.2018
comment
Проверьте, как именно Гутенберг добавляет стили. Также см. Отменить очередь, отменить регистрацию, удалить действие - не работает с плагином   -  person brasofilo    schedule 11.09.2018
comment
@TamilSelvanC, спасибо, это не сработало. Я перепробовал так много вариантов этого, и это не первый раз, когда у меня возникает именно такая проблема. Действительно неприятный аспект WP!   -  person Matt Saunders    schedule 11.09.2018
comment
@MattSaunders попробуйте удалить -css из тега. Итак wp-block-library   -  person disinfor    schedule 11.09.2018
comment
Релевантно: wp_dequeue_script для дочерней темы для замены скрипта   -  person brasofilo    schedule 11.09.2018
comment
@disin, похоже, это сработало! Я проверю как следует, а затем обновлю этот вопрос. Почему это сработает ??   -  person Matt Saunders    schedule 11.09.2018
comment
@MattSaunders -css добавляется программно в вывод HTML. Однажды я столкнулся с этим с чем-то другим и потерял кучу волос :)   -  person disinfor    schedule 11.09.2018


Ответы (10)


Я добавляю это как более полный ответ, чем мой комментарий:

Вам необходимо удалить -css при попытке вывести сценарий из очереди. Это добавлено в разметку HTML, а не в фактический тег для файла css.

Если вы выполните поиск по коду (расположение очереди может измениться по мере того, как Гутенберг перейдет в ядро), вы можете найти:

wp_enqueue_style( 'wp-block-library' );

Как видите, нет -css. Это решение может работать с другими плагинами, у которых возникают проблемы с удалением стилей из очереди.

Изменить: так как это все еще набирает обороты, вот код для его обработки:

add_action( 'wp_print_styles', 'wps_deregister_styles', 100 );
function wps_deregister_styles() {
    wp_dequeue_style( 'wp-block-library' );
}
person disinfor    schedule 11.09.2018

Я использую этот код, чтобы удалить стиль по умолчанию.

//Disable gutenberg style in Front
function wps_deregister_styles() {
    wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_print_styles', 'wps_deregister_styles', 100 );
person Кирилл Меркушев    schedule 07.12.2018
comment
Лучший ответ. +1 - person Eje; 14.03.2019
comment
автор принятого ответа просто скопировал это в свой ответ. - person T.Todua; 29.03.2020
comment
@ T.Todua Нет, не знал. Я скопировал код из исходного вопроса, так как этот вопрос и мой ответ привлекали больше внимания. - person disinfor; 02.04.2020

Я использую Wordpress 5.1. Пробовал самые популярные ответы, и они не сработали для меня, 'wp_enqueue_scripts' вместо 'wp_print_styles' делает свое дело.

Вот все мое решение WordPress 5.1, чтобы избавиться от Гутенберга без загрузки раздутых таблиц стилей:

// Disable Gutenberg editor.
add_filter('use_block_editor_for_post_type', '__return_false', 10);
// Don't load Gutenberg-related stylesheets.
add_action( 'wp_enqueue_scripts', 'remove_block_css', 100 );
function remove_block_css() {
    wp_dequeue_style( 'wp-block-library' ); // Wordpress core
    wp_dequeue_style( 'wp-block-library-theme' ); // Wordpress core
    wp_dequeue_style( 'wc-block-style' ); // WooCommerce
    wp_dequeue_style( 'storefront-gutenberg-blocks' ); // Storefront theme
}

Изменить:

Он также работает с WordPress 5.2, и поскольку он обрабатывает таблицы стилей, добавленные WooCommerce и темой Storefront, я сделал одну из настроек в своем новом плагине:

https://wordpress.org/plugins/extra-settings-for-woocommerce/

person Ryszard Jędraszyk    schedule 07.04.2019

Вставьте следующий код в свой файл functions.php

function custom_theme_assets() {
wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_enqueue_scripts', 'custom_theme_assets', 100 );

Пожалуйста, поставьте лайк, если это вам помогло.

person M.K.Dan    schedule 09.12.2018
comment
Сработало у меня! Не уверен, почему я сначала не попробовал другие ответы, но это кратко и работает на 5.2. - person Henry's Cat; 29.05.2019

Поскольку подход wp_dequeue_style не помог отключить wp-editor-font (wp-editor-font-css), я использовал следующий код:

function my_remove_gutenberg_styles($translation, $text, $context, $domain)
{
    if($context != 'Google Font Name and Variants' || $text != 'Noto Serif:400,400i,700,700i') {
        return $translation;
    }
    return 'off';
}
add_filter( 'gettext_with_context', 'my_remove_gutenberg_styles',10, 4);

См. Также https://github.com/dimadin/disable-google-fonts/blob/master/disable-google-fonts.php

person Alexander Taubenkorb    schedule 12.03.2019

Это на самом деле не отвечает на вопрос, но я подозреваю, что другие, как я, оказались здесь, пытаясь решить что-то, на что этот вопрос ссылается, но не касается: how do you remove the inline (WP 5.5+) storefront-gutenberg-blocks-inline-css so you can use the editor even though it's using white on white or black on black in the storefront theme?

Следующее сделает именно это. Поместите его в свой файл functions.php или плагин.

function clean_storefront_gutenberg_block_editor_customizer_css( $string ) {
  // return empty so the editor doesn't suck
  return '';
}
add_filter( 'storefront_gutenberg_block_editor_customizer_css', 'clean_storefront_gutenberg_block_editor_customizer_css' );

Это просто обезвреживает сгенерированный CSS, поэтому к внутреннему редактору ничего не добавляется. Внешний вид остался без изменений.

person shawn    schedule 15.12.2020

В 2021 году я попробовал варианты большинства из вышеперечисленных подходов, и все они потерпели неудачу. Глядя на код WordPress, я считаю, что причина в том, что стили Гутенберга больше не помещаются в очередь. Я нашел единственный способ удалить его - удалить его непосредственно перед печатью.

// This is what works for me.
add_action( 'wp_print_styles', 'wps_deregister_styles', 9999 );
    
function wps_deregister_styles()
    global $wp_styles;
    $wp_styles->remove('wp-block-library');
}
person ksh    schedule 29.04.2021

Удалить CSS библиотеки блоков Гутенберга из загрузки на веб-интерфейсе

function smartwp_remove_wp_block_library_css()
{
    wp_dequeue_style('wp-block-library');
    wp_dequeue_style('wp-block-library-theme');
    wp_dequeue_style('wc-block-style'); // Remove WooCommerce block CSS
}
add_action('wp_enqueue_scripts', 'smartwp_remove_wp_block_library_css', 999);
person Mohammad Ayoub Khan    schedule 10.06.2021

add_action('wp_enqueue_scripts', 'wps_deregister_styles', 200);

Работает для меня.

person user1173218    schedule 13.11.2018
comment
Вы можете иметь в виду следующее: add_action('wp_enqueue_scripts', 'wp_deregister_style', 200); но это удалит ЛЮБЫЕ зарегистрированные стили - вероятно, не то, что вы хотите! - person robrecord; 15.01.2019

Поскольку последнее обновление Гутенберга было выпущено недавно, многие люди задаются вопросом, как удалить wp-block-library из WordPress. Как показано в руководстве, ниже вам нужно указать 100 в своем add_action.

Во-первых, вы должны создать функцию, которая хранит ваш wp_dequeue_style для wp-block-library, а затем вызвать ее как таковую:

add_action( 'wp_enqueue_scripts', 'custom_function', 100 );
person WPZA    schedule 07.12.2018
comment
А можно поделиться этой функцией? - person robrecord; 15.01.2019