@stetxems

Как правильно реализовать такой цикл, где сделал ошибку?

Нужно что б каждые два блока в цикле, оборачивался в div.Типа так
<div class="box"> Контент </div">

<div  class="box">
               <a href="#" class="box-top" style=" background: center / cover no-repeat url(../images/image/photo-block3.png), #9E9E9E;">
                    <div class="box-top__title" style="background: #B427CB;">
                        Р Текст Текст
                    </div>
               </a>
               <a href="#" class="box-top" style=" background: center / cover no-repeat url(../images/image/photo-block4.png), #9E9E9E;">
                    <div class="box-top__title" style="background: #C2BC1A;">
                        Текст Текст
                    </div>
               </a>
</div>
            <div  class="box">
               <a href="#" class="box-top" style=" background: center / cover no-repeat url(../images/image/photo-block3.png), #9E9E9E;">
                    <div class="box-top__title" style="background: #B427CB;">
                      Текст Текст
                    </div>
               </a>
               <a href="#" class="box-top" style=" background: center / cover no-repeat url(../images/image/photo-block4.png), #9E9E9E;">
                    <div class="box-top__title" style="background: #C2BC1A;">
                       Текст Текст
                    </div>
               </a>
</div>


Вот как я реализовал и почему то у меня оборачивает в один <div class=" box ">потом внутрь снова в<div class="box">
Фото
5f95d9a449d02050950398.png

<?php $i = 0; ?>
            <?php
     
                            $posts = get_posts( array(
                                'numberposts' => -1,
                                'category'    => 0,
                                'orderby'     => 'date',
                                'order'       => 'DESC',
                                'include'     => array(),
                                'exclude'     => array(),
                                'meta_key'    => '',
                                'meta_value'  =>'',
                                'post_type'   => 'post',
                                'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса
                            ) );
                            
                            foreach( $posts as $post ){
                                
                                
                                setup_postdata($post); ?>
                                <?php
                                if ($i % 2 === 0) {
                                    echo '<div class="box">';
                                    }
                                    ?>	
                            <a href="#" class="box-top" style=" background: center / cover no-repeat url(<?php echo bloginfo('template_url');?>/assets/images/image/photo-block3.png), #9E9E9E;">
                            <div class="box-top__title" style="background: #B427CB;">
                       Текст текст
                            </div>
                             </a>
                        <?php
                        if ($i % 2 === 1) {
                        echo '</div">';
                        }
                         $i++;
                        ?>
                        <?php if ($i % 2 !== 0) {
                        echo '</div">';
                        }
                        ?>
                         <?php
                        }
                        wp_reset_postdata();
            ?>


Где-то ошибся в синтаксисе, помогите, пожалуйста, новичек(

Брал пример отсюда, там так же человек писал что была ошибка, но я не могу понять какая Как сделать нестандартный цикл вывода постов Wordpress?

P.S.Если есть вариант реализовать, но по другому, подскажите, уже два дня играюсь с этим((

Пока не нашел, в чем причина и почему родитель в родителе создает. Я через JS, вынес все родители .box в общий главный родитель. Тем самым, вытащил эту "матрешку" $('.main .box').appendTo( $('.main')
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Vitsliputsli
$i = 0;
foreach ($posts as $post) {
    if ($i % 2 === 0) { 
        echo '<div>'; 
    }
    echo '...';
    if ($i % 2 === 1) { 
        echo '</div>'; 
    }
    $i++;
}
Ответ написан
Комментировать
7workers
@7workers
$i++ по-моему нужно ниже опустить
Ответ написан
scottparker
@scottparker
во втором условии нужно сравнивать с 1, третье условие нужно вынести с цикла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы