子主题样式表并不总是覆盖“index”

时间:2018-01-09 作者:Sergi

我使用一个子主题和一个“styles.css”文件来覆盖父主题中的内容。我的样式(有许多样式表)是这样排队的:

function my_theme_enqueue_styles() {
    $parent_style = \'parent-style\';
    wp_enqueue_style( $parent_style, get_stylesheet_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'child-style\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( $parent_style ),
    wp_get_theme()->get(\'Version\')
    );

    wp_enqueue_style(\'shopkeeper-top-bar\', get_stylesheet_directory_uri() . \'/css/header-topbar.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-headers\', get_stylesheet_directory_uri() . \'/css/headers.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-responsive\', get_stylesheet_directory_uri() . \'/css/responsive.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-custom\', get_stylesheet_directory_uri() . \'/css/custom_artiq.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-navigations\', get_stylesheet_directory_uri() . \'/css/navigations.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-animate\', get_stylesheet_directory_uri() . \'/css/animate.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-app\', get_stylesheet_directory_uri() . \'/css/app.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-defaults\', get_stylesheet_directory_uri() . \'/css/defaults.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-easyzoom\', get_stylesheet_directory_uri() . \'/css/easyzoom.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-header-centered-2menus\', get_stylesheet_directory_uri() . \'/css/header-centered-2menus.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-idangerous-swiper\', get_stylesheet_directory_uri() . \'/css/idangerous.swiper.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-nanoscroller\', get_stylesheet_directory_uri() . \'/css/nanoscroller.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-offcanvas\', get_stylesheet_directory_uri() . \'/css/offcanvas.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-owl-carousel\', get_stylesheet_directory_uri() . \'/css/owl.carousel.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-owl-theme\', get_stylesheet_directory_uri() . \'/css/owl.theme.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-responsive\', get_stylesheet_directory_uri() . \'/css/responsive.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-select2\', get_stylesheet_directory_uri() . \'/css/select2.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-woocommerce-overwrite\', get_stylesheet_directory_uri() . \'/css/woocommerce-overwrite.css\', array(), \'1.0\', \'all\' );
    wp_enqueue_style(\'shopkeeper-fontawesome\', get_stylesheet_directory_uri() . \'/inc/fonts/font-awesome/css/font-awesome.min.css\', array(), \'1.0\', \'all\' );

    wp_enqueue_style(\'shopkeeper-styles\', get_stylesheet_directory_uri() . \'/css/styles.css\', array(), \'1.0\', \'all\' );
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
但是,如果我在子主题的“styles.css”中更改了一些内容,然后在Chrome中使用检查器,我会看到来自“index”(root/wordpress/:385)的样式占了上风。我必须使用!查看样式表中的任何更改非常重要。我如何解决这个问题,这个指数到底是什么?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

wp_enqueue_style( $parent_style, get_stylesheet_directory_uri() . \'/style.css\' );
wp_enqueue_style( \'child-style\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( $parent_style ),
    wp_get_theme()->get(\'Version\')
);
仔细看看,特别是您传递给排队样式的URL:

父级:get_stylesheet_directory_uri() . \'/style.css\'get_stylesheet_directory_uri() . \'/style.css\'

一些注意事项:

使用get_template_directory_uri 引用父主题,以及get_stylesheet_directory_uri 对于子主题,您没有缩进、缩进、缩进参数,这很重要,您声明父样式表是子主题的依赖项,但您已经将其排队,注册父主题,然后将子主题排队,这将产生相同的影响,但是使用文件修改时间会更有效,否则您必须在开发过程中刷新浏览器缓存get_stylesheet_uri() 返回到的完整路径style.css 所以.\'/style.css\' 是不必要的$parent_style 不需要变量

结束

相关推荐

子主题不起作用--没有css

我正在为我的新网站使用Twentyeleven主题。我创建了一个子主题,因此可以修改主题,而不会覆盖所做的更改。但一旦我激活了我的孩子主题,整个造型就消失了。我想问题在于功能。php。也许我做错了什么。有人能给我指出正确的方向吗?这是我的职能。我的孩子主题中的php:<?php add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' ); function theme_enqueue_styles() {