我有一个自定义帖子类型,我在其中设置了自定义分类。
我想打印出包含帖子的类别(自定义分类),但不包括一个。我找不到排除该类别的解决方案。 这是我的代码,用于输出自定义帖子类型归类的类别列表:
<?php the_terms( $post->ID, 'critter_cat', 'Critter Type: ', ', ', ' ' ); ?>
如何排除特定类别?
感谢。
答案 0 :(得分:2)
您可以在functions.php文件中创建一个函数,该函数调用get_the_terms
以将术语列表作为数组返回,然后删除您不想要的项目。
尝试一下:
function get_excluded_terms( $id = 0, $taxonomy, $before = '', $sep = '', $after = '', $exclude = array() ) {
$terms = get_the_terms( $id, $taxonomy );
if ( is_wp_error( $terms ) )
return $terms;
if ( empty( $terms ) )
return false;
foreach ( $terms as $term ) {
if(!in_array($term->term_id,$exclude)) {
$link = get_term_link( $term, $taxonomy );
if ( is_wp_error( $link ) )
return $link;
$excluded_terms[] = '<a href="' . $link . '" rel="tag">' . $term->name . '</a>';
}
}
$excluded_terms = apply_filters( "term_links-$taxonomy", $excluded_terms );
return $before . join( $sep, $excluded_terms ) . $after;
}
然后像这样使用它:
<?php echo get_excluded_terms( $post->ID, 'critter_cat', 'Critter Type: ', ', ', ' ', array(667)); ?>