在我的单个内容页面中,我想在类别列表中创建活动类。我想找到帖子($ class)的最上层家长。 当我在我的帖子上时,当前的上一个父类别中没有添加活动类(除了-> li cat-item)
<div class="nwa-widget">
<h2 class="nwa-title">CATEGORIES</h2>
<ul>
<?php
$exclude_id = get_cat_ID('Non classé');
$categories = get_categories( array(
'orderby' => 'name',
'parent' => 0,
'hide_empty' => 0, // affiche les categories même vides
'exclude' => array($exclude_id)
));
$category = get_the_category($post->ID);
$catid = $category[0]->cat_ID;
$top_level_cat = smart_category_top_parent_id ($catid);
foreach ($categories as $cat) :
$class = ( cat_is_ancestor_of( $top_level_cat, get_the_ID() ) ) ? 'active' : '';
the_ID()
?>
<li class="cat-item <?php echo $class ?>">
<a href="<?php echo get_category_link($cat->term_id); ?>"><?php echo $cat->cat_name; ?></a>
</li>
<?php endforeach; ?>
</ul>
</div>
答案 0 :(得分:0)
尝试将 foreach 语句中的第一个字符串$class = ...
替换为:
$is_active = array_reduce(
$category,
function ($carry, $cat) use ($top_level_cat) {
return $carry || cat_is_ancestor_of($top_level_cat, $cat->cat_ID);
}
);
$class = is_active? 'active' : '';