从自定义分类中排除条款?

时间:2012-04-11 17:50:29

标签: wordpress taxonomy custom-post-type

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

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

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

如何排除特定类别?

感谢。

1 个答案:

答案 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)); ?>