我试图展示自定义分类法的术语。我有这个。但是,当我有多个术语时,我的问题是如何分离
我的代码:
<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”仅在术语之间显示,而不是在每个术语之后显示?
最合适的回答,由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 );