子主题不从父主题加载整个样式

时间:2016-10-01 15:18:20

标签: php css wordpress wordpress-theming

这是我的测试页电子商务商店:https://shop.amir-rahbaran.com/

这是父样式: 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 (父级)和 shapely-child 都位于主题文件夹(相同的层次结构)中。

这是我身材匀称的孩子 style.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
[ ... ]
*/

2 个答案:

答案 0 :(得分:1)

要使其正常工作,您可以尝试使用以下修改后的代码替换函数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

答案 1 :(得分:0)

通过这种方式,它将无效:

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

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

../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' );

仍然不适合你?