Wordpress - удалить последнюю запятую с вывода с помощью rtrim - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть следующий код, который является частью виджета, который выводит термины таксономии «сезон»

Термины таксономии выводятся с пробелом и запятой между ними, но они также добавляют запятую в самом конце.

Как мне избавиться от последней запятой?

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,', ');, чтобы это работало?

1 Ответ

0 голосов
/ 03 сентября 2018

Может быть проще отобразить ваш массив на тот, который содержит нужные вам строки, а затем отобразить его, используя 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'];
...