Intereting Posts

Как добавить класс в каждый 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 ?> 

Как я могу добавить класс «альфа» для каждого (4n-3) -го div (div.four.columns) и класса «omega» для каждого (4n) -го элемента с использованием php?

Спасибо (много!), Джейми

Solutions Collecting From Web of "Как добавить класс в каждый n-й элемент в php-контуре (wordpress)"

Почему бы не добавить счетчик и использовать модульный подход, чтобы узнать в каждом столбце, какой элемент вы в настоящее время эхом.

Допустим, у вас есть 4 столбца, как указано.
Вы начинаете с счетчика = 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 ?>