Верх страницы
Обложка к записи Оптимизация WordPress путём отключения ресурсов WooCommerce
Время для прочтения: 0 мин. 42 сек.

Оптимизация WordPress путём отключения ресурсов WooCommerce

Замечали ли вы, что после активации плагина WooCommerce начинает тормозить весь сайт, а не только страницы магазина?

Это происходит потому что ресурсы магазина (стили и скрипты) загружаются для всего сайта, даже на тех страницах, где они не нужны.

Данный сниппет прекрасно решает данную задачу.

add_action(
    'wp_enqueue_scripts',
    function() {
        // Если это НЕ страницы магазина.
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
            // Отключаем стили магазина.
            wp_dequeue_style( 'woocommerce_frontend_styles' );
            wp_dequeue_style( 'woocommerce-general');
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_style( 'woocommerce_fancybox_styles' );
            wp_dequeue_style( 'woocommerce_chosen_styles' );
            wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
            wp_dequeue_style( 'select2' );
            
            // Отключаем скрипты магазина.
            wp_dequeue_script( 'wc-add-payment-method' );
            wp_dequeue_script( 'wc-lost-password' );
            wp_dequeue_script( 'wc_price_slider' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-add-to-cart' );
            wp_dequeue_script( 'wc-cart-fragments' );
            wp_dequeue_script( 'wc-credit-card-form' );
            wp_dequeue_script( 'wc-checkout' );
            wp_dequeue_script( 'wc-add-to-cart-variation' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-cart' ); 
            wp_dequeue_script( 'wc-chosen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'prettyPhoto' );
            wp_dequeue_script( 'prettyPhoto-init' );
            wp_dequeue_script( 'jquery-blockui' );
            wp_dequeue_script( 'jquery-placeholder' );
            wp_dequeue_script( 'jquery-payment' );
            wp_dequeue_script( 'jqueryui' );
            wp_dequeue_script( 'fancybox' );
            wp_dequeue_script( 'wcqi-js' );
        }
    },
    99
);

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

8 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
vladlu
vladlu
4 лет назад

Шикарный сниппет, musthave так сказать. Интересно, почему он по дефолту не включен? Мне кажется загрузка asset’ов только на необходимых страницах это обязательная практика, но почему-то почти никто этим не озадачивается.

Василий
Василий
4 лет назад
Ответить на  Кобзарёв Михаил

Подcкажите, пожалуйста, правильно ли я понял, что это нужно добавить в functions.php?

Руслан
Руслан
4 лет назад
Ответить на  vladlu

Да. Еще мне нравится подгружать js библиотеки только при необходимости. Например, fancybox только при нажатии на объект с классом .fancybox или datepicker при нажатии на .datepicker и т.д. 🙂

ellabustova
ellabustova
1 год назад

Большое спасибо. Сэкономил кучу личного времени. Этот сниппет отключил 90 существующих скриптов и стилей. Остальное уже руками дополнил

Предыдущая запись

Давайте дружить
в Телеграме

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы