在循环或猫祖先中获取CURRENT_PARENT_CATEGORY-大问题

时间:2015-02-23 作者:tibewww

一周以来我有点麻烦。。我可不喜欢这样!

我解释我的情况:

我已经为帖子类别设置了样式。

(背景色和小图像背景)。

例如:。

父母A子女1子女2子女3

父B-子1-子2

父C-子1-子2

我使用的循环是:

<a href="#" class="<?php $category = get_category($cat);
echo $category->category_nicename;?>"><?php single_cat_title(\'\') ?></a> 
当我在parent\\u category页面上时,它可以很好地工作,它带来了我通过css设置的样式,使用category\\u slug作为一个类。

(类别上的css示例:)

article.category-business-and-finance .meta-category2 a.business-and-finance {
color: white;
float: left;
padding: 2px;
padding-left: 25px;
background: url(myimg) no-repeat left  ;
background-size: 15px 15px;
background-color: #c3bc19  ;
background-position-x: 5px;
padding-right: 5px;
}
然而,当我转到child\\u类别的category\\u页面时,它会显示不同类别的样式。因为一些帖子同时设置为多个PEL parent\\u类别和多个chld类别。我不想为每个child\\u类别创建css,因为将来会添加很多子类别。

我想实现的是child\\u类别,将其当前的parent\\u类别slug的类。

如何实现这一目标?

我尝试了这个循环:

<a href="#" class="<?php $parentscategory ="";
foreach((get_the_category()) as $category) {
    if ($category->category_parent == 0) {
        $parentscategory .= \' \' . $category->slug . \' \';
    }
}
echo substr($parentscategory,0,-2);?>"><?php single_cat_title(\'\') ?></a> 
这会将所有parent\\u类别中的类添加到帖子。。有没有办法只到目前为止?

(例如,我在父A的Child-1分类页面上发了即时消息,但该帖子也附加在父B和父C中。它给我带来了父A B和父C的类,现在我只想附加父A的类,作为父A页面的子类别上的即时消息)。

我该怎么做?我应该尝试当前的\\u parent\\u类别吗?cat\\U祖先?

谢谢你花了这么多时间,

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

你可以使用get_ancestors(). 可以对此进行转换:

<a href="#" class="<?php $category = get_category($cat);
echo $category->category_nicename;?>"><?php single_cat_title(\'\') ?></a> 
(我不知道是什么$cat 由于您在问题中没有显示,我假设它是一个类别ID,如果没有,您必须提供类别ID):

<?php

$cat_ancestors = get_ancestors( $cat, \'category\' );
$top_parent = get_category( end( $cat_ancestors ) );

?>

<a href="#" class="<?php esc_attr_e( $top_parent->slug );?>"><?php echo $top_parent->name; ?></a> 
如果类别已经是顶级父类别,则要使代码也起作用,需要检查返回的值get_ancestors. 例如:

<?php

$cat_ancestors = get_ancestors( $cat, \'category\' );

if( !empty($cat_ancestors) ) {

    $cat = get_category( end( $cat_ancestors ) );

} else {

    $cat = get_category( $cat );

}

?>

<a href="#" class="<?php esc_attr_e( $cat->slug );?>"><?php echo $cat->name; ?></a>

结束

相关推荐

Show all sub categories?

是否可以显示所有父猫的所有子/子类别?我有以下层次结构:父类别/税--子1--子2父类别/税2--子1--子2我想能够在一个模板上显示所有子类别,而不显示父类别。这可能吗?