输出自定义分类法中的所有术语,并仅向附加到当前帖子的术语添加“活动”类

时间:2020-09-30 作者:FreddieE

我想输出自定义分类法中的所有术语,同时向附加到当前帖子的任何术语添加一个类。

我在每个贴子页面上显示的自定义快捷码中执行此操作。

我使用get\\u terms()显示分类法中的所有术语,但我无法确定如何检查每个术语是否附加到当前帖子。

$terms = get_terms( array(
    \'taxonomy\' => \'package\',
    \'hide_empty\' => false
) );

if (!empty($terms) && ! is_wp_error( $terms )) {
  echo \'<ul>\';
  foreach ($terms as $term) {
    echo \'<li>\' . $term->name . \'</li>\';
  }  
  echo \'</ul>\';  
}

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

如何检查每个术语是否附加到当前职位

您可以使用has_term() 它默认检查主循环中的当前post,因此可以省略第三个参数(post ID)。

例如,在您的案例中:

$class = has_term( $term->term_id, $term->taxonomy ) ? \'active\' : \'\'; // like this
//$class = has_term( $term->term_id, \'package\' ) ? \'active\' : \'\';     // or this

echo \'<li class="\' . $class . \'">\' . $term->name . \'</li>\';