2017-02-19 3 views
1

У меня есть сообщение с тегами: b1, b2, b3. Но в шаблоне категории я хочу показать только 2 тега для сообщения: b1, b2. Как мне это сделать ? Теперь я использую следующий код для отображения тегов поста:Как показывать ограниченное количество тегов?

<?php 
$posttags = get_the_tags(); 
if ($posttags) { 
    foreach($posttags as $tag) { 
     echo '<li>' .$tag->name. '</li>'; 
    } 
} 
?> 

Что я хочу:

enter image description here

+0

Это зависит от многого. Вы отфильтровываете b3, потому что это последний тег? или потому, что у вас есть ограничение тега на 2? или из-за фактического значения тега b3? или что-то другое? – mickmackusa

+0

Мне нужно отобразить только 2 тега. Ограничено до 2 @mickmackusa –

ответ

1

Обновлено: Возвращаясь к Еогеаспу() с перерывом в нем.

<?php 
$posttags = get_the_tags(); 
if($posttags){ 
    foreach($posttags as $index=>$tag){ 
     echo '<li>' .$tag->name. '</li>'; // echos while $index == 0 & 1 
     if($index>0){break;} // second iteration ($index==1) breaks the loop 
    } 
} 
?> 

Или, если массив $ posttags не использует цифровые клавиши, вы создаете свой собственный счетчик итераций:

if($posttags){ 
    $x=0; 
    foreach($posttags as $tag){ 
     echo '<li>' .$tag->name. '</li>'; 
     if(++$x==2){break;} // increment and test $x (first $x=1, second $x=2 so break) 
    } 
} 
+0

Слишком просто, приятель! – mickmackusa

+0

Привет! Возникла проблема, когда у нас только один тег, ошибка @mickmackusa –

+0

@RomanVerner Я обновил его. Объявление ключа/индекса в цикле foreach допускает зависящий от итерации разрыв. Дубликат http://stackoverflow.com/questions/9215588/break-out-of-if-and-foreach – mickmackusa

Смежные вопросы