正确使用Get_the_Terms()

时间:2016-03-12 作者:WalterV

我需要打印与自定义帖子类型帖子相关的所有术语。在帖子模板中,我编写了以下代码:

<?php foreach (get_the_terms(the_ID(), \'taxonomy\') as $cat) : ?>
     <?php echo $cat->name; ?>
<?php endforeach; ?>
循环工作正常,但在列表之前也打印了id。例如:

37
taxonomy01
taxonomy02
taxonomy03
怎么了?

2 个回复
最合适的回答,由SO网友:Sumit 整理而成

the_ID() 打印帖子ID。您需要使用get_the_ID() 返回post ID。

示例:

foreach (get_the_terms(get_the_ID(), \'taxonomy\') as $cat) {
   echo $cat->name;
}
请始终记住WordPress对模板标记的命名约定。the 这意味着要打印get 这意味着在大多数情况下都会返回。

SO网友:Arif Rahman

还可以声明变量。

$taxonomy = get_the_terms( get_the_ID(), \'taxonomy\' );

foreach ( $taxonomy as $tax ) {
   echo esc_html( $tax->name ); 
}

相关推荐

GET_THE_TERMS与wp_GET_POST_TERMS中的奇怪结果

我正在尝试制作一个面包屑函数,但有一个小问题。。。使用时:$categories = get_the_terms( $post->ID, \'product_cat\' ); 我得到了一个循环中使用的类别数组,等等。唯一的问题是它是按字母顺序排列的。(我希望它按层次顺序排列。)经过一番挖掘,我发现了一种替代方法,即使用wp\\u get\\u post\\u terms(),但我肯定遗漏了一些东西,因为当我使用此方法时:$categories = wp_get_post_terms( $p