我在Single.php和archive.php文件中尝试使用它:
<style type="text/css">
<?php $categories = get_the_category();
$cat = $categories[0]->cat_name;
if ($cat == 'Meriendas') { ?>
.page-title.solid-bg {background-color: #64a445!important;}
<?php }
elseif ($cat == 'Consejos') { ?>
.page-title.solid-bg {background-color: #e62750!important;}
<?php }
else { ?>
.page-title.solid-bg {background-color: #394299!important;}
<?php } ?>
</style>
它工作,但这可能会更好。仅在帖子分配了唯一的一个类别时才起作用。
有任何想法吗? ☺
我可能会做的是使用body_class
过滤器将类别添加到body类:
add_filter( 'body_class', function( $classes ){
if( is_single() ){
if( $categories = get_the_category() ){
foreach( $categories as $term ){
$class = sanitize_html_class( $term->slug, $term->term_id );
$classes[] = "category-$class";
}
}
}
return $classes;
});
这将做的是在单个帖子上向正文添加类,例如:category-consejos
。请注意,如果您有多个类别,则会添加多个类别,因此如果您希望一个样式覆盖另一个类别,则需要将其放在CSS中较低的位置。
上面的函数将允许您将以下样式放到style.css
文件,外观>自定义>附加CSS,甚至可以使用wp_add_inline_style
附加它们,无论您需要什么最佳套件。
.page-title.solid-bg {
background-color: #394299 !important;
}
.category-meriendas .page-title.solid-bg {
background-color: #64a445 !important;
}
.category-consejos .page-title.solid-bg {
background-color: #e62750 !important;
}
请注意,您不需要为类别/存档添加任何特殊条件,因为body_class()
函数已经考虑了类别存档。