Оборачивание каждых 2 div в строку - цикл foreach

21 июн. 2016 г., 14:07:07
Просмотры: 21K
Голосов: -1

По какой-то причине возникли сложности с оборачиванием каждых 2 div в строку в этом цикле foreach...

Кто-нибудь может пролить свет на это?

                <?php 
                    // получаем все категории
                    $terms = get_terms("aircraft_category"); 
                    //Подсчитываем сколько терминов у нас есть
                    $count = count($terms); 

                    if ( $count > 0 ){  //Если у нас больше 0 терминов
                        foreach ( $terms as $term ) {  //для каждого термина:
                            echo "<div class='col-md-6 category'>";
                            echo "<h3>";
                            echo $term->name;
                            echo "</h3>";
                            echo $term->description;
                            echo "<div class='link'>";
                            echo "<a href=".get_term_link($term).">" . 'See More' . "</a>";
                            echo "</div>";
                            echo " </div>\n";

                            //создаем элемент списка с текущим слагом термина для сортировки и именем для метки
                        }
                    } 
                ?>

Я пробовал добавлять счетчики, но безуспешно...

Любая помощь будет кстати.

Заранее спасибо.

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

Это чистый PHP, а не специфичный для WordPress. И мы уже тысячу раз освещали это на нашем сайте. Пожалуйста, воспользуйтесь поиском перед тем, как задавать вопрос. :)

fuxia fuxia
21 июн. 2016 г. 14:33:04

Привет, Toscho - Я бы не сказал, что это не по теме, но, как подсказывает название, не всегда интуитивно понятно, что относится к теме, а что нет... Мне было сложно найти правильный 'Ответ' среди тысяч, о которых ты упомянул, поэтому я решил задать вопрос.

Andy Simpson Andy Simpson
21 июн. 2016 г. 14:46:37

У вас есть массив, и вы хотите создать разные элементы в зависимости от индекса каждого элемента. Это просто PHP, WordPress здесь ни при чём. Откуда берётся массив, не влияет на проблему или её решение.

fuxia fuxia
21 июн. 2016 г. 14:49:37
Все ответы на вопрос 1
1

Вам нужно создать переменную со счетчиком, а затем проверять ее значение, например:

$num = 1;
foreach ( $terms as $term ) { 
 if($num%2) {
  echo '<div class="something">';
 }

 // другой код

 if($num %2) {
  echo '</div>';
 }
 $num++
}

Часть %2 - это то, что вам нужно, она проверяет, делится ли число на 2 без остатка

21 июн. 2016 г. 14:16:24
Комментарии

Где-то у вас будет нечетное количество терминов, что означает, что у вас останется незакрытый div, что нарушит вашу HTML-структуру

Pieter Goosen Pieter Goosen
21 июн. 2016 г. 14:45:07