假如我们选择首页显示最新文章,并且:第一篇文章显示摘要,后面的只显示标题。。。还有第一篇文章显示广告之类的。。。那么如何利用循环控制呢?
1、首页显示文章的代码一般都是:
<?php if (have_posts()) : ?> <!--检查是否有文章如果有,继续执行,没有就跳到 else 那里--> <?php while (have_posts()) : the_post(); ?> <!--开始准备文章内容,开始循环,每次循环输出一篇文章--> 此处显示文章内容或标题之类的。。 <?php endwhile ; ?> <!-- while 循环结束--> <?php else : ?> 此处显示未找到文章时的信息,比如404相关 <?php endif ; ?> <!-- if 结束-->
2、要想精确的控制每篇文章,我们先在循环前定义一个变量 $ashu_i=1 来计数,变量名随便,然后每循环一次,$ashu_i加1,例子我把index.php中的代码改成下面的–
<?php if (have_posts()) :$ashu_i=0;?> <?php while (have_posts()) : the_post();$ashu_i++;?> <?php echo "这是第 $ashu_i 篇文章:<br/>";?> <?php the_title();?> <?php echo "<hr>"; <?php endwhile; ?> <?php else : ?> 此处显示未找到文章时的信息,比如404相关 <?php endif; ?>
上面的例子就给每篇文章来了个简单控制。
3、具体要想让第一篇文章显示摘要,而余下的显示标题–代码:
<?php if (have_posts()) :$ashu_i=0;?> <!--检查是否有文章,并定义计数变量初始值为0 --> <?php while (have_posts()) : the_post();$ashu_i++;?> <!-- 开始循环,第一次循环$sahu_i为1,第二次为2,依次。。 --> <?php if($ashu_i==1){?> <!-- 如果是第一篇文章 --> <?php the_content();}else{?> <!-- 显示内容 --> <?php the_title();}?> <!-- 如果不是第一篇显示标题 --> <?php endwhile; ?> <!-- 一次while循环结束 --> <?php else : ?> <!--如果没有文章--> 此处显示未找到文章时的信息,比如404相关 <?php endif; ?> <!--if结束 -->
上面的代码就可以实现第一篇文章显示摘要,而后面的文章都只显示标题
来源:511遇见
评论前必须登录!
注册