wordpress query posts标签函数8个高级使用

作者:  耕堂 | 本文浏览997次 | 2009年10月22日

wordpress的query_posts函数,通过参数控制返回文章/页面数据,指定分类、页面、文章数、日期、排列顺序,这些都很简单,但是它还有更深层的应用,比如:随机文章不需插件、若干天前的文章等。(如果经验老到,欢迎批评指正,如果能有帮助,也不枉耕堂整理了本文)
先说下query posts一般使用方法:

<?php query_posts();?>
<?php while (have_posts()) : the_post(); ?>
<li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?php the_excerpt();?>”><?php the_title(); ?></a></li>
<?php endwhile; ?>

主要是第一行函数参数的控制,注意query是在循环外部;
1.使用条件变量

query_posts($var . “&order=ASC”);

可以把定义的一个变量var作为调用数据的一个参数,但query_posts本身的参数要符合上面的规则(前面加个&),这个很有用,因为变量可以多种多样;

2.控制文章数

query_posts(‘cat=cat1&posts_per_page=-1′);

如果后台“设置”-“阅读”,修改了文章显示数量,上面的代码会覆盖设置,posts_per_page优先运行(上面显示所有文章),如果使用showposts代替posts_per_page,可以避免;

3.通过自定义域调用

query_posts(‘post_type=any&meta_key=color&meta_value=blue’);

自定义域只有文章和页面有,可以通过post_type=post或page调用符合自定义关键字和值的文章或页面,上面的都调用;

4.文章排列控制
orderby,可选值:author、date、title、modified、menu_order、ID、rand等;

5.指定日期

query_posts(monthnum=10&day=1′);//十月一号的文章

日期参数:
hour 时,从0到23;
minute 分;
second 秒;
day 日,从1到31;
monthnum 月;
year 年,如2009;
w 周,当年的第几周,从0到53;

6.以当前日期为条件

$today = getdate();
query_posts(‘year=’ .$today["year"] .’&monthnum=’ .$today["mon"] .’&day=’ .$today["mday"] );

7.自定日期

<?php function filter_where($where = ”) {$where .= ” AND post_date < ‘2009-10-1′”;
return $where;} ?>

这个和上面的第一个结合运用就可以调用2009年十月一号前的文章;

8.相关分类和相关作者
如果你的wordpress有多个作者,在显示一篇文章的时候,在文章附近显示相关作者内容和相关分类内容,可以丰富文章信息,增加文章粘度,具体参考这里:
related category and author

p.s.query_posts灵活运用,可实现很多效果,前面说了,随机文章可以通过插件,首页随机文章调用的调整里面的方法是参考了插件random_posts(本站可下载),其实用query_posts就可以实现,通过4,当然可以增加条件,结合1和7,指定某一时间的随机文章,代码比随机文章调用那个代码更简洁。

 右上方更多相关内容/站内搜索-关键词请用空格隔开

  • 标签 : 
  • 原文链接 : http://www.gengtang.net/wordpress/query-posts-advance-use.html
  • 转载原创文章请注明 : 耕堂-gengtang.net
  • 发表留言

    可用HTML标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>