Php 回声内爆
我有以下代码片段来获取本文中可用的分类法的所有术语Php 回声内爆,php,wordpress,echo,implode,taxonomy-terms,Php,Wordpress,Echo,Implode,Taxonomy Terms,我有以下代码片段来获取本文中可用的分类法的所有术语 $tags = get_the_terms( $post->ID, 'books' ); if( $tags ) : ?> <div class="listing-tag-list"> <?php foreach( $tags as $tag ) : $tag_link = esc_url( get_term_link( $tag ) ); $tag_output
$tags = get_the_terms( $post->ID, 'books' );
if( $tags ) : ?>
<div class="listing-tag-list">
<?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>';
echo $tag_output;
endforeach; ?>
</div>
<?php endif;
$tags=获取术语($post->ID,'books');
如果($tags):?>
为什么不直接将其添加到循环中呢
$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;
简单易行的解决方案:
<?php echo get_the_terms_list( $post_id, 'books', '<div class="listing-tag-list">', ', ', '</div>' );?>
循环外的确切位置是什么?rtrim($tag_output,“,”)应该在什么地方代码>坐?你能把它作为一个完整的代码添加到你的答案中吗?
<?php echo get_the_terms_list( $post_id, 'books', '<div class="listing-tag-list">', ', ', '</div>' );?>
<?php
$tags = get_the_terms( $post->ID, 'books' );
if( ! is_wp_error( $tags ) ){
$links = array();
foreach ( $tags as $tag ) {
$link = get_term_link( $tag, $tag );
$links[] = '<a href="' . esc_url( $link ) . '" rel="tag" class="listing-tag"><span class="tag__text">' . $tag->name . '</span></a>';
}
$before = '<div class="listing-tag-list">';
$sep = ', ';
$after = '</div>';
echo $before . join( $sep, $tag_links ) . $after;
}