我是WordPress开发人员的新手,并尝试构建一个简单的子主题。我要疯狂试图让子样式覆盖父主题排队的引导样式。
我在网上看到的一切都说要解决这个问题,你必须确保你的孩子主题最后排队,我相信我已经在孩子的函数中实现了这个目标.php:
<?php
// enqueue styles
function sparkling_enqueue_styles() {
// enqueue parent styles
wp_enqueue_style('sparkling-theme', get_template_directory_uri() .'/style.css');
// enqueue child styles
wp_enqueue_style('child-theme', get_stylesheet_directory_uri() .'/style.css', array('sparkling-theme', 'sparkling-bootstrap'), '1.0', true);
}
add_action('wp_enqueue_scripts', 'sparkling_enqueue_styles');
在开发工具中检查时,这给了我一个头部,其中包含以下元素顺序:
<link rel="stylesheet" id="sparkling-theme-css"
href="http://localhost/wordpress/wp-content/themes/sparkling/style.css?
ver=4.8" type="text/css" media="all">
<link rel="stylesheet" id="sparkling-bootstrap-css"
href="http://localhost/wordpress/wp-
content/themes/sparkling/inc/css/bootstrap.min.css?ver=4.8" type="text/css"
media="all">
<link rel="stylesheet" id="child-theme-css"
href="http://localhost/wordpress/wp-content/themes/sparkling-
child/style.css?ver=1.0" type="text/css" media="1">
<link rel="stylesheet" id="sparkling-style-css"
href="http://localhost/wordpress/wp-content/themes/sparkling-
child/style.css?ver=4.8" type="text/css" media="all">
我已将这一点CSS添加到我的子主题样式表中:
@media (min-width: 768px) {
.navbar-header {
float: right !important;
}
}
但是当我去检查我的.navbar-header元素时,由于bootstrap样式,它仍然向左浮动:
bootstrap.min.css?ver=4.8:5
@media (min-width: 768px) {
.navbar-header {
float: left;
}
我有两个问题。我不知道他们是否有关系。
非常感谢任何帮助!我已经尝试将重新排队的引导程序文件出列,但这似乎并没有帮助,它会占用设计的其他部分。
答案 0 :(得分:0)
经过几个小时的研究,并通过我的排队代码和PHP进行了调查,结果发现我试图入队的子样式表存在问题:在我的CSS深处删除了一个右括号,它是保持文件不被排队,或者保持样式不被应用。
我仍然不确定为什么最后一个(不存在的)样式表出现在标题中,但它不能出列,所以我在SO上应用了以下其他人推荐的代码:
// dequeue ghost duplicate child styles
function remove_assets() {
wp_dequeue_style('sparkling-style');
wp_deregister_style('sparkling-style');
}
add_action('wp_print_styles', 'remove_assets', 99999);
我不知道这是否是使顽固资产出局的最优雅方式,但似乎有效。