child 主题未从 parent 主题加载整个样式

child theme is not loading whole style from parent theme

这是我的测试页面e-commerce店铺:https://shop.amir-rahbaran.com/

这是 parent 风格: https://colorlib.com/shapely

functions.php:

<?php
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' );
?>

shapely-master (parent) 和 shapely-child 都位于 theme 文件夹(同一层级)。

这是我的shapely-childstyle.css:

/*
Theme Name: Shapely-Child
Template: shapely
Theme URI: https://colorlib.com/wp/themes/shapely
Author: colorlib - modified by Sandra J. / Amir R.
Author URI: https://colorlib.com/
Description: [...]
Version: 1.0.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shapely
[ ... ]
*/

这样的话就不行了:

wp_enqueue_style( $parent_style, get_template_directory_uri() . '/shop.amir-rahbaran.com/wp-content/themes/shapely-master/style.css' );

因为入队的结果是不正确的样式表路径:

../wp-content/themes/twentyfifteen/shop.amir-rahbaran.com/wp-content/themes/shapely-master/style.css

用检查工具检查你的网站源代码后,似乎可以正常工作。

我也测试了以下功能,并且有效:

function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; 

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

还是不适合你?

要使其正常工作,您可以尝试用以下修改后的代码替换函数 my_theme_enqueue_styles 的代码。

  function my_theme_enqueue_styles() {

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css', array('shapely-bootstrap') );
    wp_dequeue_style('shapely-style');
    wp_enqueue_style( 'shapely-style',
        get_stylesheet_directory_uri() . '/style.css',
        array('parent-style')
    );
}

要解决此问题,请按照我上面的描述更改函数 my_theme_enqueue_styles,然后更改子主题 style.css 文件中的以下行

模板:匀称

使用以下行。

模板:shapely-master