您不必使用@import。实际上,最好不要这样做。使用排队方法可能更好。
以下是《二一三密码》的相关部分:
function twentythirteen_scripts_styles() {
...
// Loads our main stylesheet.
wp_enqueue_style( \'twentythirteen-style\', get_stylesheet_uri(), array(), \'2013-07-18\' );
...
}
add_action( \'wp_enqueue_scripts\', \'twentythirteen_scripts_styles\' );
以下是您在代码中所做的操作:
function child_scripts_styles() {
wp_enqueue_style( \'child-style\', get_stylesheet_directory_uri().\'/css/main.css\', array(\'twentythirteen-style\'), \'YOUR_THEME_VERSION\' );
}
add_action( \'wp_enqueue_scripts\', \'child_scripts_styles\' );
如果你的主要。css必须遵循家长的风格。css,那么你只需要让它依赖于它。
现在,如果子级中也有一个B.css,那么可以相应地设置依赖项:
function child_scripts_styles() {
wp_enqueue_style( \'child-B-style\', get_stylesheet_directory_uri().\'/B.css\', array(\'twentythirteen-style\'), \'YOUR_THEME_VERSION\' );
wp_enqueue_style( \'child-style\', get_stylesheet_directory_uri().\'/css/main.css\', array(\'child-B-style\'), \'YOUR_THEME_VERSION\' );
}
add_action( \'wp_enqueue_scripts\', \'child_scripts_styles\' );
使您为每个项目定义的依赖关系实际反映出这些依赖关系的真正含义。如果主要。css必须在B.css之后,然后取决于它。如果B.css必须在父样式之后。css,那么B取决于此。排队系统将为您解决问题。
如果你没有真正使用孩子的风格。css,那么你根本不必排队。它可以只是一个占位符来保存主题的标题信息。不使用它?不要加载它。
另外,你到底在做什么,这是如此依赖于订购这里?在大多数情况下,CSS不关心加载顺序。CSS更依赖于选择器的特异性。如果要覆盖某个内容,请使其选择器更具体。它可以是第一个,也可以是最后一个,或者介于两者之间的任何东西,更具体的选择器总是获胜。
Edit
阅读您的评论并仔细查看代码,我知道错误在哪里了。第213段代码将“get\\u stylesheet\\u uri()”排入队列,在子主题的情况下,它将是您的子主题的样式。css文件,而不是父文件。这就是为什么@import可以工作,并保持相同的顺序(同样,这也没有你想象的那么重要)。
在这种情况下,如果您不想使用导入,我建议将父样式排入队列。直接使用css。像这样:
function child_scripts_styles() {
wp_enqueue_style( \'parent-style\', get_template_directory_uri().\'/style.css\', array() );
}
add_action( \'wp_enqueue_scripts\', \'child_scripts_styles\' );
子主题函数中的代码。php首先运行,因此您自己的wp\\u enqueue\\u脚本将首先运行,这将使父主题的样式排队。父主题本身并没有这样做(因为它实际上是在将您孩子的style.css排入队列)。通过不使它依赖于任何东西,就像父对象一样,那么它就可以正确地放入输出中。请注意,此文件和genericons的顺序。css并不重要,因为最初的“Twentyree样式”没有genericons。css作为列出的依赖项。
你自己孩子的风格。css将加载,老实说,这是您应该将对子主题的更改放在其中的地方,而不是放在单独的main中。css。没有什么可以阻止您将更改放在那里,但没有真正的理由需要额外的css文件。