2016-10-09 2 views
4

Я хотел бы обернуть каждые три сообщения в новой строке (div), в общей сложности девять сообщений на странице. В конце есть пустая строка. Я думал, что это (I need to wrap every 4 wordpress posts in a div) будет работать, но у меня есть больше сообщений на страницах 2, 3, 4 и т. Д. Ниже приведена упрощенная версия моего кода. $ Я = 1.Оберните каждые три сообщения WordPress в div

<div class="row"> 

    <?php while (have_posts()) : the_post(); ?> 

     <div class="column"> 
     </div> 

     <?php if ($i % 3 == 0) : ?> 

      </div> <!-- .row --> 
      <div class="row"> 

     <?php endif; $i++; ?> 

    <?php endwhile; ?> 

</div> <!-- .row --> 

ответ

0

Я использовал этот пост (https://www.nosegraze.com/display-wordpress-posts-2-3-columns/), чтобы решить мою проблему.

$ i = 0;

<?php while (have_posts()) : the_post(); ?> 

    <?php if ($i == 0) : ?> 

     <div class="row"> 

    <?php endif; ?> 

    <div class="column"> 
    </div> <!-- .column --> 

    <?php 
     $i++; 
     if($i == 3) : 
     $i = 0; ?> 

     </div> <!-- .row --> 

    <?php endif; ?> 

<?php endwhile; ?> 

<?php if ($i > 0) : ?> 

    </div> <!-- .row --> 

<?php endif; ?> 
2

Вы можете использовать get_next_post() проверить, существует ли следующий пост или нет.

<?php if ($i % 3 == 0) : ?> 
</div> <!-- .row --> 
<?php 
    $next_post = get_next_post(); 
    if (!empty($next_post)): ?> 
     <div class="row"> 
    <?php endif; ?> 
Смежные вопросы