【发布时间】:2018-09-10 14:17:35
【问题描述】:
我试图避免使用 !important 来覆盖 WooCommerce 样式。现在我已经将 WooCommerce 样式排入队列并尝试在我的子模板之后将它们排入队列,但似乎没有任何效果。
// Dequeue Woocommerce Style
add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );
// Dequeue Parent themes
function understrap_remove_scripts() {
wp_dequeue_style( 'understrap-styles' );
wp_deregister_style( 'understrap-styles' );
wp_dequeue_script( 'understrap-scripts' );
wp_deregister_script( 'understrap-scripts' );
// Removes the parent themes stylesheet and scripts from inc/enqueue.php
}
add_action( 'wp_enqueue_scripts', 'understrap_remove_scripts', 20 );
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
// Get the theme data
$the_theme = wp_get_theme();
wp_enqueue_style( 'child-understrap-styles', get_stylesheet_directory_uri() . '/css/child-theme.min.css', array(), $the_theme->get( 'Version' ) );
wp_enqueue_script( 'jquery');
wp_enqueue_script( 'popper-scripts', get_template_directory_uri() . '/js/popper.min.js', array(), false);
wp_enqueue_script( 'child-understrap-scripts', get_stylesheet_directory_uri() . '/js/child-theme.min.js', array(), $the_theme->get( 'Version' ), true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'woocommerce_theme_styles' );
function woocommerce_theme_styles() {
wp_enqueue_style('woocommerce_smallscreen', plugins_url() .'/woocommerce/assets/css/woocommerce-smallscreen.css');
wp_enqueue_style('woocommerce_css', plugins_url() .'/woocommerce/assets/css/woocommerce.css');
wp_enqueue_style('woocommerce_layout', plugins_url() .'/woocommerce/assets/css/woocommerce-layout.css');
}
这是网络的实时版本:http://ufctrashtalk.com
我做错了什么?
谢谢!!
【问题讨论】:
-
为了覆盖你的css必须在休息之后加载。
-
您似乎将它们出列,将您的孩子 css 排队,然后将它们排队。我不知道wordpress。但是我会删除 dequeueing 和 juste queue your child 主题,而不需要 woocomerce enqueueing。
-
我不想让所有 woocommerce 样式出列,因为我需要大部分 CSS。我只想覆盖某些部分而不使用!important。谢谢!
-
不要让任何一个出队。只需在 woocomerce 之后添加您的。这样,您的 ccs 应该在 woocomerce 之后加载并覆盖您在文件中指定的规则。
-
即使您在 woocommerce 之前将样式排入队列,您仍然应该能够在不使用
!important的情况下覆盖 woocommerce 样式。假设 woocommerce 样式“.wc_checkout 按钮”,并且您想要覆盖其样式,您可以更具体地指定您的 css 目标,它将通过定位.wc_checkout .any-div-class button来覆盖 woocommerce 样式
标签: php css wordpress woocommerce