Archive for May, 2009

使用query_posts()调用特定分类日志

今天一直在修改一个企业站的模板,想在网站的侧边栏调用某一产品分类的日志标题,这样可以在侧边栏显示分类下的所有产品

通过google,找到wordpress一个函数

query_posts()

这个函数很强大,具体可以看这篇文章中文版在这),我参照着文章写出了这个调用过程:

<h2>产品速查</h2>
<?php query_posts('showposts=5&cat=7'); ?> /* showpost表示调用日志数量,cat表示日志分类 */
<?php while(have_posts()) : the_post(); //循环代码开始 ?>
<li><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></li> 
<?php endwhile; ?>

保存后,一切都很顺利:侧边栏出现我所调用的日志

本以为完工了,但是可怕的事情发生了:网站的内页内容都一致,都是所调用的几篇日志的内容。显然出现的这个问题是我所没有预料到的,之后分析上面一段代码,明白了导致了这个重大错误的原因:在sidebar上调用分类下的post信息之后,在single、page页面直接调用了这些数据,简言之,single上和page页面上的内容并没有重置。原因找到了,问题也能顺利解决了,只需要在之前的那段代码下方加入一行:

<?php wp_reset_query(); ?>

即完整的调用代码如下:

<h2>产品速查</h2>
<?php query_posts('showposts=5&cat=7'); ?>
<?php while(have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></li> 
<?php endwhile; ?>
<?php wp_reset_query(); ?>

Tags : , ,

18 queries. 0.371 seconds