Cela semble être un problème trivial mais je n'arrive pas à le faire fonctionner. Je dois ajouter class="last"
à chaque troisième message.
Voici mon code:
<?php
$count = 0;
$my_query = new WP_Query('cat=-18,-7&showposts=9');
while ($my_query->have_posts()) : $my_query->the_post();
?>
<article class="<?php if ($count % 3 == 0) { echo "last "; }" ?>> </article>
<?php
$count++;
endwhile;
?>
Je pense que vous avez juste besoin de démarrer la variable $count
à partir de 1 et non à zéro. Sinon, vous obtiendrez l'effet opposé, car 0 modulo 3 est 0. Le premier élément de chaque 3 recevra le nom de la classe.
Je ne suis pas sûr de savoir ce dont vous avez besoin ici, il est habituel de garder une trace des valeurs paires/impaires. Vous avez simplement besoin de tous les trois.
$i = 0;
//while stuff
$i++;
if( 3 == $i ) {
$i = 0;
echo 'last';
}
commencer le compte à partir de 1
post number count value %value
1 1 1
2 2 2
3 3 0
J'ai trouvé cela à la recherche d'un moyen de faire de même avec le thème de base WordPress, "Bones". Il a également une "première" classe. Je poste cela ici au cas où cela pourrait aider quelqu'un d'autre.
<div class="wrap clearfix">
<?php
$count = 1;
$categories = get_categories($args);
foreach ($categories as $cat) { ?>
<article class="
<?php
//echo $count.' ';
if ($count % 3 == 0) {echo 'last ';}
if ($count == 1 || $count % 3 == 1) {echo 'first ';}
?>fourcol">
<h4><?php echo $cat->cat_name ?></h4>
<div class="desc"><?php echo $cat->category_description ?></div>
</article>
<?php $count++;} ?>