在父主题之后加载子主题的style-.css

时间:2016-05-25 作者:shmuli

我正在加载我孩子的主题style.css 在父主题之后style.css 已加载。然而,我注意到style.css 不需要排队,因为它是由WordPress内核隐式排队的。

所以我明确地把它排成这样,它依赖于parent-style 已加载:

function enqueue_theme_styles() {
  wp_enqueue_style( \'parent-style\', get_template_directory_uri().\'/style.css\' );
  wp_enqueue_style( \'child-style\', get_stylesheet_directory_uri(). \'/style.css\', array(\'parent-style\') );
}
add_action( \'wp_enqueue_scripts\', \'enqueue_theme_styles\', PHP_INT_MAX );
问题是现在loaded twice. 一次隐式,然后显式。我怎样才能装我孩子的style.css 在家长没有加载两次之后?

下面是head 看起来像:

<head>
    <meta charset="<?php bloginfo( \'charset\' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php bloginfo(\'name\'); ?> | <?php is_front_page() ? bloginfo(\'description\') : wp_title(\'\'); ?></title>
    <?php if(isset($themeum[\'favicon\'])){ ?>
        <link rel="shortcut icon" href="<?php echo $themeum[\'favicon\']; ?>" type="image/x-icon"/>
    <?php }else{ ?>
        <link rel="shortcut icon" href="<?php echo get_template_directory_uri().\'/images/plus.png\' ?>" type="image/x-icon"/>
    <?php } ?>
    <link rel="stylesheet" type="text/css" href="">

    <link rel="profile" href="http://gmpg.org/xfn/11">
    <link rel="pingback" href="<?php bloginfo( \'pingback_url\' ); ?>">
    <!--[if lt IE 9]>
    <script src="<?php echo get_template_directory_uri(); ?>/js/html5.js"></script>
    <![endif]-->
    <?php if(isset($themeum[\'before_head\'])) echo $themeum[\'before_head\'];?>
    <?php wp_head(); ?>
</head>

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

正如@Andy Macaulay Brook指出的,WordPress不会加载child-theme\'s style.css . 我想家长主题可能正在排队。

取消子主题的队列style.css 先排队,然后排队parent\'s 风格css之前child theme\'s 风格css取消子主题的队列style.css您可以取消子主题样式的队列。通过使用句柄创建css。您可以通过查看父主题(假设它是从父主题加载的)或查看页面源的链接来找到句柄。

例如:

使用从网站链接Twenty Fifteen theme 看起来像这样

<link rel=\'stylesheet\' id=\'twentyfifteen-style-css\'  href=\'http://wp.dev/wp-content/themes/twentyfifteen/style.css?ver=4.5.3-alpha-37528\' type=\'text/css\' media=\'all\' />
其句柄为twentyfifteen-style 哪个是id 链接标记的,但没有-css.

所以我们可以使用wp_dequeue_style 挂钩到wp_enqueue_scripts

wp_dequeue_style(\'twentyfifteen-style\');
排队parent\'s 风格css之前child theme\'s 风格css(取决于依赖项列表)通过更改wp_enqueue_scripts 挂钩小于默认值(10)并加载父主题style.css. (我对此不确定,必须检查)

function wpse_227769_enqueue_scripts() {
   //Load parent theme style.css here
}
add_action( \'wp_enqueue_scripts\', \'wpse_227769_enqueue_scripts\', 9 );

相关推荐