有些时候为个性化主题,我们会制作子主题方便修改主题功能外观,而不用修改原主题,通常我们会用:


@import url( '../parent-theme-folder/style.css' );

这种方式加载父主题的样式。
但使用@ import方式加载样式也有一定的缺点,比如:加载慢等。
我们可以使用另一种加载父主题样式的方法:


add_action( 'wp_enqueue_scripts', 'my_parent_theme_css' );
function my_parent_theme_css() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

将代码添加到子主题functions.php 模板文件中。
还可以进一步:


add_action( 'wp_enqueue_scripts', 'my_enqueue_styles' );
function my_enqueue_styles() {
    /* If using a child theme, auto-load the parent theme style. */
    if ( is_child_theme() ) {
        wp_enqueue_style( 'parent-style', trailingslashit( get_template_directory_uri() ) . 'style.css' );
    }
    /* Always load active theme's style.css. */
    wp_enqueue_style( 'style', get_stylesheet_uri() );
}

在某些特殊的情况下,你可能不希望加载父主题的样式,可以这样写:


add_action( 'wp_enqueue_scripts', 'my_dequeue_styles', 11 );
function my_dequeue_styles() {
    wp_dequeue_style( 'parent-style' );
}