Поддержка Проблемы и решения Чистка header.php от "мусора" (лишних *.css файлов)

  • Приветствую.
    На сайте стоит >20 плагинов, часть из которых подключают в <head> свои файлы стилей.

    Занялся оптимизацией загрузки сайта — объединением файлов стилей
    (весь css-код скидываю в один — style.css темы сайта).

    В function.php (знаю, что лучше так не делать) прописал след.код:

    add_action ('wp_print_styles', 'remove_styles', 100);
    function remove_styles () {
        wp_deregister_style ('adv-spoiler');
        wp_deregister_style ('simple_tooltips_style');
        wp_deregister_style ('wpfront-scroll-top');
    }

    Для первых двух плагинов (adv-spoiler, simple_tool-tips) это сработало — стили перестали подключаться.
    Но для последнего (да и для других плагинов) — этот вариант не подошел.

    Скажите, как убрать подключение файлов стилей плагинами?

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • вопрос по другому звучит — а как они подключаются?
    некоторые плагина подключают свои скрипты и стили вообще без wordpress-функций.

    В частности, adv-spoiler (для него вышеуказанный код сработал) так

    function enqueue_style() {
    		wp_enqueue_style('adv-spoiler', $this->url . '/css/advanced-spoiler.css', false, $this->version);
    	}

    А вот для wpfront-scroll-top

    public function enqueue_options_styles() {
                $styleRoot = $this->pluginURLRoot . 'jquery-plugins/colorpicker/css/';
                wp_enqueue_style('jquery.eyecon.colorpicker.colorpicker', $styleRoot . 'colorpicker.css', array(), self::VERSION);
    
                $styleRoot = $this->pluginURLRoot . 'css/';
                wp_enqueue_style('wpfront-scroll-top-options', $styleRoot . 'options.css', array(), self::VERSION);
            }

    Но для него не срабатывает.

    Хотя нет, для последнего не тот код ( поторопился.

    Как эффективно искать так называемые handle’ы (wpfront-scroll-top) в файлах плагинов?

    ну видите — регистрации этих стилей нет.
    поэтому ваша дерегистрация не работает.

    Ну а как найти handle видя только html-код страницы сайта?

    Предлагают еще такой вариант

    add_action ('wp_head', 'remove_styles');
    function remove_styles () {
        wp_deregister_style ('adv-spoiler');
        wp_deregister_style ('simple_tooltips_style');
        wp_deregister_style ('wpfront-scroll-top');
    }    вот так пробывал?

    Ушел пробовать.

    еще раз — судя по коду, заранее эти стили не регистрируются.
    поэтому дерегистрацией их подключение никак не убрать.

    Хорошо, дерегистрация, например, не поможет.
    А как быть?

    так:

    //dequeue css from plugins
    add_action('wp_print_styles', 'mytheme_dequeue_css_from_plugins', 100);
    function mytheme_dequeue_css_from_plugins()  {
    	wp_dequeue_style( "plugin-css-file-handle" );
    }

    I love WordPress!
    I love this Forum!
    My respect Flector!

    Flector, Ваш код cработал!

    plugin-css-file-handle
    это как правило значение id

    <link rel='stylesheet' id='jquery-lazyloadxt-css-css' href='//domen.ru/wp-content/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css?ver=4.3.1' type='text/css' media='all' />

    В данном случае jquery-lazyloadxt-css (т.е. без последнего -css)

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Чистка header.php от "мусора" (лишних *.css файлов)» закрыта для новых ответов.