将活动/当前类添加到GET_TERMS列表

时间:2017-03-18 作者:Johann

我有一个使用“get\\u terms”显示的术语列表。每个术语都是链接的,因此如果用户单击它,他们会转到术语存档页面。

 <?php $terms = get_terms(\'category\');t
 echo \'<ul>\';
 foreach ($terms as $term) {
 echo \'<li><a href="\'.get_term_link($term).\'">\'.$term->name.\'</a></li>\';
 }
 echo \'</ul>\';
 ?>
然而,我想知道,如果用户转到术语存档页面,是否有办法将“活动”类添加到每个术语链接。

非常感谢您的帮助,

3 个回复
SO网友:Ian

在中运行条件检查foreach 循环使用is_category($term-name)

将类变量指定给active 如果它与$term->name

$terms = get_terms( \'category\' );
echo \'<ul>\';
foreach ( $terms as $term ) {
    $class = ( is_category( $term->name ) ) ? \'active\' : \'\'; // assign this class if we\'re on the same category page as $term->name
    echo \'<li><a href="\' . get_term_link( $term ) . \'" class="\' . $class . \'">\' . $term->name . \'</a></li>\';
}
echo \'</ul>\';

SO网友:Houndjetode Noukpo Herve

我也有同样的问题,下面的解决方案帮助了我。我希望我能帮忙

$curTerm = $wp_query->queried_object;
$terms   = get_terms( \'product-category\' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        $classes = array();
        if ( $term->name == $curTerm->name ) {
            $classes[] = \'active\';
        }
        echo \'<li class="\' . implode( \' \', $classes ) . \'"><a href="\' . get_term_link( $term ) . \'">\' . $term->name . \'</a></li>\';
    }
}
参见this source 有关更多详细信息

SO网友:adubiel

此版本使用is_tax 专门检查分类的函数。

$terms = get_terms( array(
  \'taxonomy\' => \'video-category\',
  \'hide_empty\' => false
) );

if (!empty( $terms ) && ! is_wp_error($terms)){
  foreach ( $terms as $term ) {
    $class = ( is_tax(\'video-category\', $term->slug) ) ? \'cat-item current-cat\' : \'cat-item\';
    echo \'<li class="\'.$class.\'"><a href="\' . get_term_link( $term ) .\'">\' . $term->name . \'</a></li>\';
}

相关推荐

echo a tax term in loop

对于列表中的每个项目,我需要在之后在此循环中回显CPT的一个术语。感谢您的指导或帮助。原始代码来自Stackoverflow。com,因为它起作用了。 <?php $da_place = get_field(\'smart_place\'); //acf field $args = array( \'post_type\' => \'to_do_items\', \'tax_query\' => array