我有以下代码,它是小部件的一部分,该小部件输出分类法“季节”的条款
分类术语在它们之间以空格和逗号输出,但最后也添加了逗号。
如何摆脱上一个逗号?
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
global $post;
$tags = get_the_terms( $post->ID, 'season' );
if( $tags ) : ?>
<?php foreach( $tags as $tag ) :
$tag_link = esc_url( get_term_link( $tag ) );
$tag_output = '';
$tag_output .= '<a href="' . $tag_link . '" class="listing-tag">';
$tag_output .= '<span class="tag__text">' . $tag->name . '</span></a>';
$tag_output .=", ";
echo $tag_output;
endforeach; ?>
<?php endif;
echo $args['after_widget'];
}
我正在尝试使用rtrim($tag_output,', ');
,但我只是想不通将rtrim
字符串放在哪里,以使其正常工作。
rtrim($tag_output,', ');
应该放在代码中的什么位置才能使这项工作生效?
答案 0 :(得分:2)
map your array到包含所需字符串的字符串,然后使用implode()
显示它可能会更容易。例如
if ($tags) {
$tagOutput = array_map(function($tag) {
return sprintf(
'<a href="%s" class="listing-tag"><span class="tag__text">%s</span></a>',
esc_url( get_term_link( $tag ) ),
$tag->name
);
}, $tags);
echo implode(', ', $tagOutput);
}
echo $args['after_widget'];