2016-04-27 2 views
1

Мне нужно это для цикла в WordPress, но я думаю, что и для чистого PHP будет нормально. мне нужно чередовать мой DIV, я somethink так:PHP чередуется с «защищенным» первым элементом

// Here I getting total count of posts - return as INT, ex. 4 
$countOffers = wp_count_posts('offer')->publish; 

<?php while ($the_query->have_posts()) : $the_query->the_post(); ?> 

    <?php if ($countOffers % 2 == 0): ?> 
     // Align to left side 
     <?php get_template_part('template-parts/Offer/content', 'left'); ?> 
    <?php else: ?> 
     // Align to right side 
     <?php get_template_part('template-parts/Offer/content', 'right'); ?> 
    <?php endif ?> 

    <?php $countOffers--; ?> 
<?php endwhile; ?> 

Это работает нормально, но я хочу, чтобы «закрепить» первый элемент на левой стороне.
Это означает, что независимо от того, сколько элементов я верну, он всегда будет первым слева.

+0

Вы можете просто добавить 'поплавка: left'» к этим элементам? – WillardSolutions

ответ

1

Используйте переменную счетчика для этого ($counter в этом примере). На каждой итерации цикла while проверьте, является ли $counter делящимся на 2 или нет, и соответствующим образом выровняйте элемент.

Ваш код должен выглядеть так:

$countOffers = wp_count_posts('offer')->publish; 
$counter = 1; 
<?php while ($the_query->have_posts() && $counter <= $countOffers) : $the_query->the_post(); ?> 

    <?php if ($counter % 2 != 0): ?> 
     // Align to left side 
     <?php get_template_part('template-parts/Offer/content', 'left'); ?> 
    <?php else: ?> 
     // Align to right side 
     <?php get_template_part('template-parts/Offer/content', 'right'); ?> 
    <?php endif ?> 

    <?php ++$counter; ?> 
<?php endwhile; ?>