10

私は次のような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 ?>

phpを使用して、すべての(4n-3)番目のdiv(div.four.columns)に「alpha」クラスを追加し、すべての(4n)番目のアイテムに「omega」クラスを追加するにはどうすればよいですか?

ありがとう(たくさん!)、ジェイミー

4

2 に答える 2

28

カウンターを追加し、モジュラスアプローチを使用して、現在エコーしている要素をすべての列で把握してみませんか。

指定された4つの列があるとします。
あなたはcounter=1
1%4 = 1(あなたは最初の要素にいます)
2%4 = 2(あなたは2番目の要素にいます)
3%4 = 3(あなたは3番目の要素にいます)
4%4=0から始めます(あなたは4番目の要素にいます)
5%4 = 1(あなたは最初の要素にいます)
6%4 = 2(あなたは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 ?>
于 2012-10-02T21:13:11.157 に答える
1

行われたコメントからの実装:

<?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 ?>
于 2012-10-02T21:16:20.440 に答える