Дочерняя тема магазина все еще загружает родительский CSS
У меня проблема с дочерней темой Storefront. Я создал дочернюю тему Storefront, как они предлагают здесь: https://docs.woocommerce.com/document/set-up-and-use-a-child-theme/
Дочерняя тема работает нормально, я могу написать свой CSS, написать свой код в functions.php и переопределить файлы шаблонов, но дочерняя тема по-прежнему загружает родительскую тему CSS.
Как я могу создать дочернюю тему без загруженного родительского CSS?
2 ответа
Добавьте эти функции в functions.php вашей дочерней темы.
Этот код отключит загрузку CSS для магазина по умолчанию.
Источник: https://github.com/stuartduff/storefront-child-theme
/**
* Storefront automatically loads the core CSS even if using a child theme as it is more efficient
* than @importing it in the child theme style.css file.
*
* Uncomment the line below if you'd like to disable the Storefront Core CSS.
*
* If you don't plan to dequeue the Storefront Core CSS you can remove the subsequent line and as well
* as the sf_child_theme_dequeue_style() function declaration.
*/
add_action( 'wp_enqueue_scripts', 'sf_child_theme_dequeue_style', 999 );
/**
* Dequeue the Storefront Parent theme core CSS
*/
function sf_child_theme_dequeue_style() {
wp_dequeue_style( 'storefront-style' );
wp_dequeue_style( 'storefront-woocommerce-style' );
}
Кроме того, вы можете отключить стандартные таблицы стилей WooCommerce,
Источник: https://docs.woocommerce.com/document/disable-the-default-stylesheet/
/**
* Set WooCommerce image dimensions upon theme activation
*/
// Remove each style one by one
add_filter( 'woocommerce_enqueue_styles', 'jk_dequeue_styles' );
function jk_dequeue_styles( $enqueue_styles ) {
unset( $enqueue_styles['woocommerce-general'] ); // Remove the gloss
unset( $enqueue_styles['woocommerce-layout'] ); // Remove the layout
unset( $enqueue_styles['woocommerce-smallscreen'] ); // Remove the smallscreen optimisation
return $enqueue_styles;
}
Начиная с версии Storefront 2.5.8, выпущенной 7 июля 2020 года, средства удаления из очереди таблицы стилей родительской темы Storefront обязательно изменились из-за запроса на вытягивание № 1369.
Этот коммит устанавливает таблицу стилей Storefront (
- | wp-content/themes/storefront/style.css и
- | wp-content/themes/storefront/assets/css/base/icons.css
как явные зависимости | wp-content/themes/storefront/assets/css/woocommerce/woocommerce.css.
Это изменение было сделано для того, чтобы дочерняя тема могла определяться как зависимость без риска нарушения порядка других таблиц стилей Storefront и без необходимости устанавливать более высокий приоритет для этой поставленной в очередь зависимости для смягчения таких поломок — согласно Issue #1299.
Из-за этой зависимости любая попытка просто удалить очередь
В приведенном ниже примере;
- Сначала поставьте в очередь стиль woocommerce только с иконками в качестве зависимости,
- Затем поставьте в очередь свой дочерний стиль и
- Наконец, стиль витрины выведен из очереди.
В этом примере я намеренно поставил в очередь свой дочерний стиль после woocommerce, так как я переопределил некоторые стили woocommerce в своем собственном ( если нужен еще более низкий приоритет - я мог бы поместить его в
add_action( 'wp_enqueue_scripts', 'enqueue_styles' );
function enqueue_styles() {
wp_enqueue_style( 'storefront-woocommerce-style', get_template_directory_uri() . '/assets/css/woocommerce/woocommerce.css', array( 'storefront-icons' ), $storefront_version );
wp_enqueue_style( 'storefront-child-style', get_stylesheet_directory_uri() . '/style.css', '', $storefront_version );
}
add_action( 'wp_enqueue_scripts', 'dequeue_styles', 99 );
function dequeue_styles() {
wp_dequeue_style( 'storefront-style' );
}