子主题未加载父CSS

时间:2015-09-06 作者:Toby Cannon

我正在为一个新网站使用MyStile主题。我正在尝试创建一个子主题,这样我就可以修改主题,而不会覆盖我的更改,但是一旦我激活我的子主题,整个样式似乎都是从网站开始的<我猜,当它称之为家长风格时,这里的问题就在某个地方。css文件。

以下是我的孩子主题风格。css。

   /*
 Theme Name:   Blurred Edge Apparel
 Theme URI:    http://www.blurrededgeapparel.com
 Description:  MyStile Child Theme
 Author:       Blurred Edge Apparel
 Author URI:   http://www.blurrededgeapparel.com
 Template:     mystile
 Version:      1.0.0
*/


@import url("../mystile/style.css");
我还复制了整个标题。php和页脚。php来自父主题目录,但仍然没有乐趣<我是不是遗漏了什么?

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

看看How to create a Child Theme 您将看到:

以前将父样式表排队的方法是使用@import导入父主题样式表:这不再是最佳做法。将父主题样式表排队的正确方法是添加wp\\u enqueue\\u scripts操作,并在子主题的函数中使用wp\\u enqueue\\u style()。php。

下面是提供的示例:

add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
function theme_enqueue_styles() {
    wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );
}

SO网友:mmm

mystile主题是一个3年前的主题,由于子样式在header.php 在不好的地方

更正此问题的更快方法是将这些文件放在子主题目录中:

文件style.css : 。

/*
Template: mystile
*/
文件child-style.css : 要应用的所有CSS规则functions.php : 。

<?php
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
function theme_enqueue_styles() {
    wp_enqueue_style( \'parent-style\', get_template_directory_uri() . \'/style.css\' );

    wp_enqueue_style( \'child-style\'
        , get_stylesheet_directory_uri() . \'/child-style.css\'
        , array(\'parent-style\') // declare the dependency
                                // in order to load child-style after parent-style
    );
}

SO网友:Nick Rolando

https://developer.wordpress.org/themes/advanced-topics/child-themes/

建议将样式表排队的方法是添加wp\\u enqueue\\u scripts操作,并在子主题的函数中使用wp\\u enqueue\\u style()。php。如果没有,请创建函数。php在子主题的目录中。子主题函数的第一行。php将是一个开放的php标记(<;?php),之后您可以根据父主题的操作编写php代码。

如果父主题同时加载两个样式表,则子主题无需执行任何操作。

If the parent theme loads its style using a function starting with get_template, such as get_template_directory() and get_template_directory_uri(), 子主题只需使用依赖项参数中的父级句柄加载子样式。

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( \'child-style\', get_stylesheet_uri(),
        array( \'parenthandle\' ), 
        wp_get_theme()->get(\'Version\') // this only works if you have Version in the style header
    );
}
If the parent theme loads its style using a function starting with get_stylesheet, such as get_stylesheet_directory() and get_stylesheet_directory_uri(), 子主题需要同时加载父样式表和子样式表。确保对父样式使用与父样式相同的句柄名称。

add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
function my_theme_enqueue_styles() {
    $parenthandle = \'parent-style\'; // This is \'twentyfifteen-style\' for the Twenty Fifteen theme.
    $theme = wp_get_theme();
    wp_enqueue_style( $parenthandle, get_template_directory_uri() . \'/style.css\', 
        array(),  // if the parent theme code has a dependency, copy it to here
        $theme->parent()->get(\'Version\')
    );
    wp_enqueue_style( \'child-style\', get_stylesheet_uri(),
        array( $parenthandle ),
        $theme->get(\'Version\') // this only works if you have Version in the style header
    );
}
请参阅上面我用粗体字引用的文本。现在检查父主题是如何加载其样式的,并按照相应的说明和示例进行操作。我的是后者,因此我将我的编码如下:

add_action( \'wp_enqueue_scripts\', \'twentytwentychild_enqueue_styles\' );
function twentytwentychild_enqueue_styles() {
    $parentHandle = "twentytwenty-style";
    $childHandle = "twentytwentychild-style";
    $theme = wp_get_theme();

    wp_enqueue_style($parentHandle, get_template_directory_uri() . \'/style.css\',
        array(), // if the parent theme code has a dependency, copy it to here
        $theme->parent()->get(\'Version\') // this only works if you have Version in the style header
    );

    wp_enqueue_style($childHandle, get_stylesheet_uri(),
        array($parentHandle),
        $theme->get(\'Version\') // this only works if you have Version in the style header
    );
}

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容