Wordpress儿童主题style.css无效

时间:2016-10-11 10:43:16

标签: php wordpress

我创建了一个与父主题格式相同的文件结构。我的父主题叫做Alpine,在Alpine里面有一个functions.php和style.css文件。似乎没有任何其他style.css文件。

我创建了一个名为Alpine-child的目录,并在其中创建了一个functions.php和style.css文件。

我无法理解为什么我对子style.css所做的任何更改都没有实现,但是当我在父style.css中进行相同的更改时它们就是这样。

这是我的孩子style.css:

/*
 Theme Name:   Alpine Child
 Theme URI:    http://www.creative-ispiration.com/wp/alpine/
 Description:  My first child theme, based on Alpine
 Author:       MilkshakeThemes
 Author URI:   http://themeforest.net/user/milkshakethemes
 Template:     Alpine
 Version:      1.0.0
 Tags: one-column, two-columns, right-sidebar, fluid-layout, custom-menu, editor-style, featured-images, post-formats, rtl$
 Text Domain: alpine-child
*/

这是我的孩子的functions.php文件:

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

6 个答案:

答案 0 :(得分:13)

查看您的<head>标记。更重要的是要查看样式表的顺序。

首先添加子主题中的样式,然后添加父主题中的所有样式。这将导致父主题中的样式覆盖您的子主题样式。

您可以使用https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships的第三个参数更改my_theme_enqueue_styles函数在父项后运行的优先级。这将最后将您的子主题样式排入队列,并允许CSS按预期工作。

<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}
?>

答案 1 :(得分:3)

这对我有用:

<?php
function my_theme_enqueue_styles() {
    $parent_style = 'twentyseventeen-style'; 
    $child-style = 'twentyseventeen-child-style';
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( $child-style, get_stylesheet_uri() );
}
?>

并没有其他答案。

答案 2 :(得分:0)

您需要将子主题style.css排入队列,因此您的功能应该是:

function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; 

    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')
    );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

查看documentation

答案 3 :(得分:0)

&#13;
&#13;
<?php
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
?>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

克雷格·希克(Craig Hick)的答案对我有用,我也意识到为什么我的Wordpress文档中的默认代码无法正常工作。

  <?php 
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' ); 
function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.

    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')
    ); }

在我的情况下, wp_get_theme()-> get('Version')行返回了 1.0.0 ,该版本号与父主题的版本号相同。 因此,我只是将子主题css版本号更改为 1.0.1 并且有效。

答案 5 :(得分:0)

我的子主题目前有以下代码:

<?php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );

function enqueue_parent_styles() {
   wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

//load child theme custom CSS
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}

?>

之前我使用的代码只有//load child theme custom CSS部分之前的第一部分,无法获取自定义CSS。我已经添加了上面建议的代码@jrod 并且它起作用了。我需要和你们确认一下,我的子主题代码是完整的,我不需要添加任何其他内容。我不确定这是否也获取了我在子主题 JS 文件中的自定义 JS 文件。