Separator for multiple terms

时间:2014-07-13 作者:user3571316

我试图展示自定义分类法的术语。我有这个。但是,当我有多个术语时,我的问题是如何分离
我的代码:

<ul class="slides">
    <?php $loop = new WP_Query( array( \'post_type\' => \'member\', \'posts_per_page\' => -1 ) ); ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post(); $do_not_duplicate = $post->ID; ?>
        <li>
            <h2><?php $terms = get_terms(\'department\');
                foreach ( $terms as $term ) {
                    echo $term->name.\' and \';
                }
            ?></h2>
            <?php the_post_thumbnail(\'full\'); ?>
            <div class="caption">
                <h4><?php the_title(); ?></h4>
                <h5><?php $terms = get_terms(\'position\');
                    foreach ( $terms as $term ) {
                        echo $term->name.\' and \';
                    }
                ?></h5>
                <?php the_content(); ?>
                <a href="<?php the_permalink(); ?>">See Full Biography</a>
            </div>
        </li>
    <?php endwhile; wp_reset_query(); wp_reset_postdata(); ?>
</ul>
有了这个,我可以显示所有使用的术语(好)。但是,我只需要在术语之间写上“和”。现在,每学期结束后,它都会说“和”,即使只有一个学期
我知道我的问题就在这里:

<?php $terms = get_terms(\'department\');
    foreach ( $terms as $term ) {
        echo $term->name.\' and \';
    }
?>
如何使“and”仅在术语之间显示,而不是在每个术语之后显示?

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

如果只需要术语名称,只需获取术语名称:使用field 的参数get_terms().

构建一个逗号分隔的列表,在最后两个项目之间使用wp_sprintf_l().

// get the term names
$term_names = get_terms( \'department\', array ( \'fields\' => \'names\' ) );
// glue the names with comma and an \'and\' between the last two
if ( ! empty ( $term_names ) )
    echo wp_sprintf_l( \'%l\', $term_names );

结束

相关推荐

我可以在‘Get_the_Terms’中使用自定义元值吗?

我有一个自定义页面模板,这是我试图操纵的代码,根据我为特定页面编写的自定义元值进行更改。$terms = get_the_terms($post->id, \'custom-taxonomy\' ); 在CPT页面上,我有一个自定义元字段“分类名称”,自定义元值是“自定义分类”我试图用上面的代码做的是:$terms = get_the_terms($post->id, get_post_meta($post->ID,\'metafield-taxonomy-name\',TRU