为什么需要将父样式表排在子主题中?

时间:2018-06-23 作者:Edward

WordPress documentation 表示在子主题中将父样式表排队:

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {

    $parent_style = \'parent-style\';

    // Why enqueue parent style again? The child theme works perfectly without this line
    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 ),
        wp_get_theme()->get(\'Version\')
    );
}
但是父主题样式表已经在父主题中排队,在子主题中再次排队有什么意义?

2 个回复
SO网友:Andy Macaulay-Brook

并不是所有的主题都像这样将样式表排列在一起。几年前,一个主题在标题中硬编码样式表链接是很正常的。php

因此,子主题不能保证父主题已将样式表排入队列。

SO网友:Jacob Peattie

但父主题样式表已在父主题中排队

不,不是。通常不会。原因是大多数主题将get_stylesheet_uri() 作用这将返回样式的URL。当前主题的css文件。

创建和激活子主题时,子主题将成为当前主题。这意味着父主题正在将样式排入队列。来自子主题的css文件,但不将其自己的样式表排队。

因此,如果要将父主题的原始样式表排队,则需要将其样式排队。来自子主题的css文件。

为什么这是,我不能说,但如果我不得不猜测的话,我会说,当引入该功能时,儿童主题可能主要是为了取代主题的样式表。如果是这样的话,那么子主题过程不包括加载现有样式表是有道理的。

结束