我在wordpress中创建了一个名为bigpont的父主题的子主题。我也在网站上使用woocommerce。我已经完成了我的孩子主题样式表,并注意到它加载了两次,我不知道为什么。我也想知道如何加载它,所以它覆盖了woocommerce样式表。这是我目前在functions.php文件中使用的代码:
function my_theme_enqueue_styles() {
$parent_style = 'bigpoint-css';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/base.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');
以下是我的网站上如何加载样式表 它似乎加载为'bigpoint-default-css',然后再添加“child-style-css”
****更新:我发现我的css的答案被加载两次,在我的父主题的functions.php文件中被调用:
wp_register_style('bigpoint-default', get_stylesheet_uri(), '1.0');
所以我用它来解除这个:
function unhook_parent_style() {
wp_dequeue_style( 'bigpoint-default' );
wp_deregister_style( 'bigpoint-default' );
}
add_action( 'wp_enqueue_scripts', 'unhook_parent_style', 20 );
答案 0 :(得分:1)
通过查看文件class-wc-frontend-scripts.php
,看起来WooCommerce将其默认优先级为10的脚本/样式排队。
public static function init() {
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'load_scripts' ) );
add_action( 'wp_print_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
add_action( 'wp_print_footer_scripts', array( __CLASS__, 'localize_printed_scripts' ), 5 );
}
因此,如果您将脚本排入较低优先级,它们将在WooCommerce样式之后加载并覆盖该样式表,因为文件将在HTML文档下方的WooCommerce之后加载。
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 100 );
我需要更多信息来调试重复样式表所发生的事情。