<?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' />
为什么?
#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
评论
可以在子主题中发布style.css文件的标题信息吗?