这个方法我们可以在一些CMS主题中经常看到。像wopus的首页;它在首页调用了很多分类。然后把分类的第一条和其他的标题区分出来;我们先来看下默认的主循环。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
这里是循环的内容
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
这里是循环的内容
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
have_posts()判断有没有数据,如果有,则进入循环。要实现那样的效果,我们只需要建立两个循环就行了。在这里我们可以用query_posts() 来查询数据。
<?php query_posts('showposts=1'); ?>
我们先输出一条日志。然后对这个日志进行一些自定义,它可以有标题,作者,分类,内容…
<?php query_posts('showposts=10&offset=1'); ?>
然后再输出10条日志。用offset排除第一条。这10条我们只需要输出标题就行。完整的代码看下面
- <?php query_posts('showposts=1'); ?>
- <?php if(have_posts()) : while (have_posts()) : the_post(); ?>
- <div id="post-<?php the_ID() ;?>">
- <h2><a href="<?php the_permalink() ?>" title="点击查看—><?php the_title(); ?>" ><?php the_title(); ?></a></h2>
- <?php the_content('阅读全文»'); ?>
- </div>
- <?php endwhile; else :?>
- ...display error message
- <?php endif; ?>
- <?php query_posts('showposts=10&offset=1'); ?>
- <ul>
- <?php while (have_posts()) : the_post(); ?>
- <li><a href="<?php the_permalink() ?>" title="点击查看—><?php the_title(); ?>" ><?php the_title(); ?></a></li>
- <?php endwhile; ?>
- </ul>
OK了,是不是很简单就实现了。
2009/09/07
好久没来发现多了好多值得学习的东西。抽时间慢慢啃!
2009/06/09
昨天看到个代码,可以用rss拉文章标题,数据查询量就不会这么大了
2009/06/06
好好看的主题
2009/06/06
query_posts 重复使用多次,那个查询量相当吓人
2009/06/05
不太理解是怎么回事,到你说的链接看看。
2009/06/05
学习了^_^