Display taxonomy term slugs

时间:2014-09-28 作者:user1374796

我希望在循环中显示当前帖子的分类术语的slug列表。

<?php $terms = get_the_terms( $post->ID, \'wpsc_product_category\' ); if ( !empty( $terms ) ){ $term = array_shift( $terms ); echo $term->slug; } ?>
我目前使用的函数可以工作,尽管它只显示第一个分类术语的slug,而不是全部。

e、 g.一个岗位分配给多个岗位wpsc_product_category, 但只有第一个术语显示在前端,而不是所有术语的列表。

如能就如何实现这一目标提出任何建议,我们将不胜感激。

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

你的代码完全错了。array_shift 不应使用

array_shift() 关闭并返回数组的第一个值,将数组缩短一个元素,并向下移动所有元素。所有数字数组键将被修改为从零开始计数,而文字键将不会被触摸。

你应该看看get_the_terms 在法典中。

我只想指出,我通常利用wp_list_categories 因为它提供了很大的灵活性,而且它还可以用于自定义分类法。这里有一个来自法典的例子

<?php
$taxonomy = \'wpsc_product_category\';

// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';

if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {

    $term_ids = implode( \',\' , $post_terms );
    $terms = wp_list_categories( \'title_li=&style=none&echo=0&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
    $terms = rtrim( trim( str_replace( \'<br />\',  $separator, $terms ) ), $separator );

    // display post categories
    echo  $terms;
}
?>

结束

相关推荐

即使HIDE_EMPTY为FALSE,Get_Terms()也不返回空词

我没办法get_terms() 返回空条件,我已经尝试了很多方法。代码如下:$terms = get_terms(\'device\',array(\'hide_empty\' => 0)); foreach($terms as $term) { if($term->parent == 0) { if($i++ != 0) echo \'</optgroup>\'; echo \'<optgroup label=