如何在Wordpress(WP)中将类别定义为具有颜色值的变量?

问题描述 投票:0回答:1

我在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>

它工作,但这可能会更好。仅在帖子分配了唯一的一个类别时才起作用。

有任何想法吗? ☺

php wordpress
1个回答
0
投票

我可能会做的是使用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()函数已经考虑了类别存档。

© www.soinside.com 2019 - 2024. All rights reserved.