0

我是 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 - 仅用于最后一个博客。

再次感谢。

4

2 回答 2

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>

干杯

于 2013-06-19T00:25:43.390 回答
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; 然后设置一个测试,只要变量小于我们想要做的循环数,就保持循环。接下来我们设置每个循环要做什么,在这种情况下,我们每次将变量加一。

第一个循环

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

于 2013-06-18T22:46:00.377 回答