Wordpress: удаление последней запятой для списка тегов - PullRequest
0 голосов
/ 12 августа 2010

Я создал пользовательский вывод foreach, который помогает дать мне идентификатор тега для каждого сообщения.Я использую запятые для разделения каждого тега.Однако последний тег также выводит запятую, например:

котята, собаки, попугаи, (<- последняя запятая) </p>

Как мне перейти к пересмотру вывода foreach, чтобыпоследняя запятая удаляется, поэтому она выглядит следующим образом:

котята, собаки, попугаи

Вот код:

<?php
$posttags = get_the_tags();
if ($posttags) {
    foreach($posttags as $tag) {
        echo '<a href="';
        echo bloginfo(url);
        echo '/?tag=' . $tag->slug . '" class="tag-link-' . $tag->term_id . '">' . $tag->name . '</a>, ';
    }
}
?>

Ответы [ 3 ]

4 голосов
/ 12 августа 2010

implode - твой друг, если ты не хочешь быть Шлемиэль - художник .

$posttags = get_the_tags();
if ($posttags) {
   $tagstrings = array();
   foreach($posttags as $tag) {
      $tagstrings[] = '<a href="' . get_tag_link($tag->term_id) . '" class="tag-link-' . $tag->term_id . '">' . $tag->name . '</a>';
   }
   echo implode(', ', $tagstrings);
}

// For an extra touch, use this function instead of `implode` to a better formatted string
// It will return "A, B and C" instead of "A, B, C"
function array_to_string($array, $glue = ', ', $final_glue = ' and ') {
    if (1 == count($array)) {
        return $array[0];
    }
    $last_item = array_pop($array);
    return implode($glue, $array) . $final_glue . $last_item;
}
1 голос
/ 12 августа 2010

Вы можете сделать это с rtrim .

<?php
$posttags = get_the_tags();
if ($posttags) {
    foreach($posttags as $tag) {
        $output.='<a href="';
        $output.= bloginfo(url);
        $output.= '/?tag=' . $tag->slug . '" class="tag-link-' . $tag->term_id . '">' . $tag->name . '</a>, ';
    }
    echo rtrim($output, ', ');
}
?>
1 голос
/ 12 августа 2010

Попробуйте что-то вроде этого?

<?php
$posttags = get_the_tags();
if ($posttags) {
    $loop = 1; // *
    foreach($posttags as $tag) {
        echo '<a href="';
        echo bloginfo(url);
        if ($loop<count($posttags)) $endline = ', '; else $endline = ''; // *
        $loop++ // *
        echo '/?tag=' . $tag->slug . '" class="tag-link-' . $tag->term_id . '">' . $tag->name . '</a>' . $endline;
    }
}
?>

edit или

<?php
$posttags = get_the_tags();
if ($posttags) {
    $tagstr = '';
    foreach($posttags as $tag) {
        $tagstr .= '<a href="';
        $tagstr .= bloginfo(url);
        $tagstr .= '/?tag=' . $tag->slug . '" class="tag-link-' . $tag->term_id . '">' . $tag->name . '</a>';
    }
    $tagstr = substr($tagstr , 0, -2);
    echo $tagstr ;
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...