我根据WP文档创建了一个子主题,并添加了必要的功能

<?php
add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array('parent-style')  );
}


以某种方式,我最终得到了2个对我的子主题样式表的引用:

<link rel='stylesheet' id='twentythirteen-style-css'  href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=2013-07-18' type='text/css' media='all' />

<link rel='stylesheet' id='child-style-css'  href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=4.0' type='text/css' media='all' />


为什么?

评论

可以在子主题中发布style.css文件的标题信息吗?

#1 楼

这篇文章的链接与这篇文章相关,我现在对此文章中的更改进行了更新

感谢您提出此问题。我已经快速测试过该场景,并且子样式实际上已加载两次。考虑到默认情况下这实际上是完成的,并且给出的代码实际上将两次加载子样式表。

只需从函数中删除$priority并删除子主题的入队部分,就可以很容易地纠正此问题。我已经重新测试了所有内容,并且一切正常。最好有几个人可以合作。

同时,我将更新代码抄本并链接到这篇文章。

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


编辑

对于本帖子不适合的任何人,请参阅此帖子。您将需要去看看父主题如何添加样式。此问题中的代码严格认为,父级样式以正确的方式加载。如果不是,请查看链接的答案中的替代方法,然后尝试使用

评论


会测试。似乎WP不在乎样式表会被加载两次,或者我们缺少一些基本原理。

– mmcglynn
2014年11月6日16:50

就主题而言,我在使用此方法时遇到了几个问题,在此处详细介绍。

– dMcClintock
2014年11月9日15:22

如果使用相同的“ id”,样式表将不会加载两次。但这会带来另一个问题-我想加入子样式表,以便在其他CSS之后加载它,以便我可以覆盖它...但是,这只会复制样式(如果使用相同的'id',则忽略该样式)

– php-b-grader
15-10-27在6:39

我可以说,此方法的主要问题是子样式不会引入子主题的版本号。似乎引入了父主题的版本号,但这并不总是理想的。

– Garconis
18-09-28在17:08

@ pieter-goosen我遵循了子主题的示例,该示例使用子主题的版本号:wp_get_theme()-> get('Version')。但是,我最终为WP版本和子主题版本复制了CSS:。在这些情况下,解决方案是什么?

– IvanRF
18-10-4在23:30