Как добавить класс к каждому N-му элементу в цикле php (wordpress)
У меня есть цикл Wordpress следующим образом:
<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="four columns">
<?php the_content(); //along with other stuff in looped div ?>
</div>
<?php endwhile ?>
Как я могу добавить класс 'alpha' к каждому (4n-3) - му div (div.четыре.столбцы)и класс "omega" для каждого (4n) - го элемента с использованием php?
Спасибо (большое!), Джейми!--2-->
2 ответов
почему бы не добавить счетчик и использовать модульный подход, чтобы узнать в каждом столбце, какой элемент вы в настоящее время Эхо.
допустим, у вас есть 4 столбца, как указано.
Вы начинаете с counter = 1
1 % 4 = 1 ( Вы в первом элементе )
2 % 4 = 2 ( Вы во втором элементе )
3 % 4 = 3 (Вы находитесь в третьем элементе )
4 % 4 = 0 ( вы находитесь в четвертый элемент )
5 % 4 = 1 ( Вы в первом элементе )
6 % 4 = 2 (вы находитесь во втором элементе)
и вы просто используете оператор If с классом как следующий
<?php $counter = 1 ?>
<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="four columns <?php if ($counter % 4 == 1){echo 'alpha'}else if ($counter % 4 == 0){echo 'omega'} ?>">
<?php the_content(); //along with other stuff in looped div ?>
</div>
<?php $counter++ ;
endwhile ?>
реализация от замечания:
<?php $loop = new WP_Query( array( 'post_type' => 'portfolio' ) ); ?>
<?php
$i = 0;
while ( $loop->have_posts() ) : $loop->the_post();
if( $i % 4 == 0 )
$class = 'omega';
else
$class = '';
?>
<div class="four columns <?php echo $class ?>">
<?php
the_content(); // Along with other stuff in looped div
$i++;
?>
</div>
<?php endwhile ?>