1

我有一个自定义帖子类型,其中设置了自定义分类法。

我想打印出帖子包含的类别(自定义分类),但排除一个。我找不到排除该类别的解决方案。这是我的代码,用于输出自定义帖子类型所在的类别列表:

<?php the_terms( $post->ID, 'critter_cat', 'Critter Type: ', ', ', ' ' ); ?>

如何排除特定类别?

谢谢。

4

1 回答 1

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)); ?>
于 2012-04-11T18:13:01.143 回答