是否可以检索自定义层次分类法中不属于当前帖子的所有术语?可能通过使用wp_get_post_terms()
? 我最近偶然发现了这种不寻常的需要。
基本上,如果我的自定义分类法包含术语(term1、term2、term3等),我想在单个帖子页面中显示此帖子属于term1和term2,而不是term3等。
EDIT:我很难在短代码中实现这一点。我有以下代码:
add_shortcode( \'my-no-terms\', \'no_terms_func\' );
function no_terms_func() {
$this_post_terms = get_the_terms( $post->ID, \'my-tax-slug\' );
$exclude = wp_list_pluck( $this_post_terms, \'term_id\' );
$args = array(
\'exclude\' => $exclude,
);
$terms = get_terms( \'my-tax-slug\', $args );
foreach ( $terms as $term ) {
return $term->name;
}
}
但这只是输出第一个术语,而不是整个术语列表。罪犯在哪里?
最合适的回答,由SO网友:Milo 整理而成
将当前post术语的术语ID放入数组中,并将其作为exclude
参数设置为get_terms
作用
$this_post_terms = get_the_terms( $post->ID, \'your_custom_tax\' );
$exclude = wp_list_pluck( $this_post_terms, \'term_id\' );
$args = array(
\'exclude\' => $exclude,
);
$terms = get_terms( \'your_custom_tax\', $args );