Функция для получения первых 3 имен тегов в сообщении

#php #wordpress #tags #wordpress-theming

#php #wordpress #Теги #wordpress-тематизация

Вопрос:

 function hashtags(){
    $tags = get_the_tags($post->ID);
    $count=0;
    foreach ($tags as $tag){
    $count  ;
    if (1 == $count) {
    return $tag->name . ', '; 
    }
    if (2 == $count) {
    return $tag->name . ', '; 
    }
    if (3 == $count) {
    return $tag->name; 
    }
    }
}
 

Я не знаю о php, я новичок, я создал эту функцию для отображения имени первых 3 тегов post, я хочу, чтобы это возвращалось: tag1, tag2, tag3.

Функция работает, но возвращает только первый тег, если я добавлю echo без проблем, но я не хочу echo, есть идеи?

Ответ №1:

Извините, если я неправильно понял, но я думаю, что вы пытаетесь вернуть разделенный запятыми список имен, найденных get_the_tags функцией? Если это так, это должно сработать:

 $tags = get_the_tags($post->ID);
$names = array();
$count = 1;
foreach ($tags as $tag) {
  $names[] = $tag->name;
  if ($count   == 3) {
    break;
  }
}

return implode(', ', $names);
 

Этот код перебирает теги, добавляет каждое имя тега в array ( $names ) и, наконец, прогоняет массив implode() для создания списка, разделенного запятыми.

Комментарии:

1. Это работает, большое вам спасибо, вы можете ограничить результат 3 тегами?

2. Я так не думаю get_the_tags , но вы можете просто сделать это вручную, я обновил ответ 🙂

3. еще раз спасибо и извините за мой плохой английский (либо новичок в этом языке xD).