if last elements echo'class =“last”'

时间:2013-06-18 22:41:32

标签: php

我是php的新手,我正在尝试创建一个简单的代码,在“while”循环的最后一个元素的开头打印一个“last”类。循环中只有两个项目(博客摘录)因此我为什么尝试下面的if($ i == 1)...感谢您的帮助。

这是我到目前为止的代码 - 只返回p

   <?php
     $i = 0;
     if($i == 1) {
      echo '<p class="last">';
     }
     else {
      echo '<p>';
     }
   ?>

编辑:

感谢您的帮助。非常感谢 - 我在下面提供了更多信息(我在深夜发布,所以我意识到我没有那么清楚)。

这是我想写的完整代码。它正在从Wordpress中提取博客摘录 - 目前仅限于2篇博客文章。

<?php 
 $posts = new WP_Query('showposts=2');
 while ( $posts->have_posts() ) : $posts->the_post(); 
?>
 <p><a href="<?php echo get_permalink(); ?>"><?php echo the_title(); ?></a><br/>
    <?php echo substr(get_the_excerpt(), 0,200); ?>... <a href="<?php echo get_permalink();   ?>">Read More</a></p>
<?php endwhile; ?> 
<?php wp_reset_query(); ?> 

我想在第5行的开头将“last”类添加到p中 - 除了最后一个博客。

再次感谢。

2 个答案:

答案 0 :(得分:1)

尼克的回答说几乎所有这些都需要说。 我唯一可以添加的是保存重复的轻微变化,特别是如果段落标记的内容更复杂。

对Nick的代码进行以下调整可能会更好:

<style>
  #contents p:last-child {
     PUT CONTENTS OF CLASS HERE
  }
</style>
<body>
  <div id="#contents">
<?php
  $numLoops = 2;
  $ctext=""
  for($i=0; $i<$numLoops; $i++) {
    $info="whatever";
    if($i == (numLoops-1)) {
        $ctext=' class="last"';
    }
    echo "<p${ctext}>${info}</p>\n";
  }
?>
  </div>
</body>

干杯

答案 1 :(得分:0)

所以你有两个段落,并且你想将“last”类应用到最后一个?使用CSS

可以更好地处理这种情况
<style>
  #contents p:last-child {
     PUT CONTENTS OF CLASS HERE
  }
</style>
<body>
  <div id="#contents">
    <p> first info</p>
    <p> last info </p>
  </div>
</body>

如果您想了解循环

<?php
  $numLoops = 2;
  for($i=0; $i<$numLoops; $i++) {
    if($i == (numLoops-1)) {
        echo '<p class="last">';
     } else {
        echo '<p>';
     }
  }

我们在这里用for循环做的是最初设置变量$ i = 0;然后设置一个测试,说明只要变量小于我们想要做的循环次数就保持循环。接下来我们设置每个循环的操作,在这种情况下,我们每次都将变量增加1。

第一次循环

i=0, we see that 0 is < 2 so we continue

第二次循环

We execute the $i++ so we increment $i by 1 from 0 to $i=1, 
we test and see $i=1 is still less than 2 so we continue.

第三次尝试循环

We increment $i by 1 and get $i=2.  
We test to see if this is less than 2, but it is NOT so we do not execute code in the loop

主要问题是你的代码中没有循环,如果你没有循环你的变量$ i