Php:如何在我的无序列表中添加奇数/偶数循环

时间:2010-08-10 03:05:15

标签: php css xhtml

这是我的wordpress帖子的一个例子。我想在<li>

最后中添加一些课程

类似 <li class='lastli'>

<ul class="tabs">
 <?php
  global $post;
  $myposts = get_posts('numberposts=3');
  foreach($myposts as $post) :
  setup_postdata($post);
  ?>
 <li><a href="#"><?php the_title(); ?></a></li>
 <?php endforeach; ?>         
</ul>

我想要的结果如下:

<ul>
 <li>Title 1</li>
 <li>Title 1</li>
 <li class='lastli'>Title 1</li>
<ul>

无序列表的最后一个将是<li class='lastli'>。让我知道怎么做?

3 个答案:

答案 0 :(得分:3)

使用for循环

<ul class="tabs">
 <?php
  global $post;
  $myposts = get_posts('numberposts=3');
  $nposts = count($myposts);
  for($i=0;$i<$nposts;$i++):
    $post = $myposts[$i];
    setup_postdata($post);
  ?>
 <li<?php if ($i==$nposts-1):?> class='lastli'<?php endif;?>><a href="#"><?php the_title(); ?></a></li>
 <?php endfor; ?>         
</ul>

注意:在循环之前计算数组大小是很好的做法,否则php会在循环的每一轮评估它

答案 1 :(得分:1)

<ul class="tabs">
 <?php
  global $post;
  $myposts = get_posts('numberposts=3');
  $nposts = count($myposts);
  $odd_even_class = array('odd_class', 'even_class');

  for($i=0;$i<$nposts-1;$i++):
    $post = $myposts[$i];
    setup_postdata($post);
  ?>
 <li <?php echo $odd_even_class[($i+1)%2];?>><a href="#"><?php the_title(); ?></a></li>
 <?php 
endfor; 
 $post = $myposts[$i];
 setup_postdata($post);

 <li class='lastli'><a href="#"><?php the_title();?></a></li>         
</ul>

您不需要条件声明:)

答案 2 :(得分:0)

<ul class="tabs">
 <?php
  global $post;
  $myposts = get_posts('numberposts=3');
  $i = 0;
  for ($i = 0; $i < count($myposts); $i++) {
  $post = $myposts[$i];
  setup_postdata($post);
  ?>
 <li <?= ($i==count($myposts)-1)?"class='lastli'":"" ?>><a href="#"><?php the_title(); ?></a></li>
 <?php } ?>         
</ul>