2010-05-11 6 views
1

Je suis en cours d'exécution d'un plugin appelé Catégorie messages Widget pour WordPress: http://wordpress.org/extend/plugins/category-posts/While: sortie quelque chose de différent sur chaque deuxième résultat

Il utilise une boucle while pour afficher les noms de tous les messages dans une certaine catégorie. Je veux l'obtenir pour qu'il y ait une classe différente attachée à la balise li à chaque seconde sortie.

Voici le bloc de code pour le plug-in:

// Post list 
    echo "<ul>\n"; 

    while ($cat_posts->have_posts()) 
    { 
     $cat_posts->the_post(); 
    ?> 
     <li class="cat-post-item"> 
      <a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> 

      <?php 
       if (
        function_exists('the_post_thumbnail') && 
        current_theme_supports("post-thumbnails") && 
        $instance["thumb"] && 
        has_post_thumbnail() 
       ) : 
      ?> 
       <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> 
       <?php the_post_thumbnail('cat_post_thumb_size'.$this->id); ?> 
       </a> 
      <?php endif; ?> 

      <?php if ($instance['date']) : ?> 
      <p class="post-date"><?php the_time("j M Y"); ?></p> 
      <?php endif; ?> 

      <?php if ($instance['excerpt']) : ?> 
      <?php the_excerpt(); ?> 
      <?php endif; ?> 

      <?php if ($instance['comment_num']) : ?> 
      <p class="comment-num">(<?php comments_number(); ?>)</p> 
      <?php endif; ?> 
     </li> 
    <?php 
    } 

    echo "</ul>\n"; 

Je suis juste essayer de l'obtenir ainsi de suite chaque seconde dans la liste de sortie, le li a une classe différente, donc chat post item-alt par exemple.

Merci,

Wade

Répondre

0

Ce qui suit est non testé, mais il illustre le principe de base. Changez simplement une valeur booléenne sur chaque instance de la boucle. Même les messages auront en plus la classe cat-post-item-even, de sorte que vous n'aurez pas à modifier votre feuille de style plus que nécessaire.

Il est intéressant de découvrir que les boucles peuvent être utilisées pour d'autres choses que de simples incréments.

Les deux lignes éditées sont marquées comme telles.

// Post list 
echo "<ul>\n"; 

/* edited */ for($even=false;$cat_posts->have_posts();$even=!$even) 
{ 
    $cat_posts->the_post(); 
?> 
<!-- edited -->  <li class="cat-post-item<?php if($even) echo " cat-post-item-even"; ?>"> 
     <a class="post-title" href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> 

     <?php 
      if (
       function_exists('the_post_thumbnail') && 
       current_theme_supports("post-thumbnails") && 
       $instance["thumb"] && 
       has_post_thumbnail() 
      ) : 
     ?> 
      <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> 
      <?php the_post_thumbnail('cat_post_thumb_size'.$this->id); ?> 
      </a> 
     <?php endif; ?> 

     <?php if ($instance['date']) : ?> 
     <p class="post-date"><?php the_time("j M Y"); ?></p> 
     <?php endif; ?> 

     <?php if ($instance['excerpt']) : ?> 
     <?php the_excerpt(); ?> 
     <?php endif; ?> 

     <?php if ($instance['comment_num']) : ?> 
     <p class="comment-num">(<?php comments_number(); ?>)</p> 
     <?php endif; ?> 
    </li> 
<?php 
} 

echo "</ul>\n"; 
+0

Merci beaucoup. Aide les tonnes! –

0
// .... 
<? $type = ($type + 1) % 2; ?> 
<li class="cat-post-item<?=$type ?>"> 
0
$counter=1; 

for ($i=0; $i<=10; $i++) { 

    if ($counter%3===0) { 
     echo 'something else'; 
    } else { 
     echo 'normal'; 
    } 

    echo '<br />'; 

    $counter++; 
} 
+0

Vous ne voulez pas dire $ counter% 2? – Simon

+0

Vous avez raison, j'ai mal lu la question; pensé qu'il ment 001001 .. opposé à 010101 .. Autre façon: 'if ($ counter & 1) {}' – Alec

Questions connexes