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
这是我的测试页面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