loading...

昏天暗地折腾新的主题ING,发现query_posts()真是无比强大,记录一下~~

将query_posts()放在LOOP之前限定你所需要的条件,wp_query会产生一个新的使用你的参数的SQL查询,而忽视通过URL接收到的其它的参数,如果想不忽略,可以在调用中使用$query_string。

query_posts($query_string . "&order=ASC")

设置文章显示的顺序,但是不干扰其余的查询字符串,参数前须有“&”符号

其他还有N多用途~~

  • 主页不显示某一分类下的日志
<?php
   if (is_home()) {
      query_posts("cat=-3");
   }
?>
  • 获得特定的日志
<?php
query_posts('p=5');
?>
  • 获得特定的页面
<?php
query_posts('page_id=7');      //只返回网页7
?>
<?php
query_posts('pagename=about'); //只返回关于网页
?>
<?php
query_posts('pagename=parent/child'); // 返回母网页的子网页
?>
  • 创建所有文章列表,并且提供分页功能
<?php
query_posts($query_string.'posts_per_page=-1');
while(have_posts()) { the_post();
put your loop here ;
}
?>

==========================================

类别 参数

显示属于某个类别的文章

  • cat
  • category_name

根据ID显示一个类别

只显示来自一个类别ID的文章

query_posts('cat=4');

根据名称显示一个类别

只显示属于某个类别名的文章

query_posts('category_name=Staff Home');

显示几个类别及ID

显示属于几个类别ID的文章

query_posts('cat=2,6,17,38');

删除某个类别的文章

显示所有的文章,但是类别ID前面有个’-'(负号)负号的类被除外。

query_posts('cat=-3');

删除属于类别3的所有文章。有一个限制性条款:会删除只属于类别3的所有文章。如果一个类别也同时属于其它的类别,这个类别仍然不会被删除。

标签参数

显示与某个标签相关的文章

  • tag

为某个标签提取文章

query_posts('tag=cooking');

获得拥有任何这样的标签的文章

query_posts('tag=bread,baking');

获取拥有这三个标签的文章

query_posts('tag=bread+baking+recipe');

作者参数

你也可以根据作者限制文章数目

  • author_name=Harriet
  • author=3

author_name在 user_nicename区操作, 同时作者 在作者id上操作。

文章 & 网页参数

返回一篇单独的文章或者一个单独的网页

  • p=1 – 使用文章 ID来显示第一篇文章
  • name=first-post – 使用 post Slug 显示第一篇文章
  • page_id=7
  • pagename=about
  • showposts=1 (你可以使用 showposts=3,或者其它的任何数字显示一定数目的文章)

由于 模板层级方面的原因, home.php先执行了。这意味这你可以编写一个home.php,home.phh调用query_posts()重新得到一个特别的网页并且将那个网页设置为你的首页。没有任何插件或者hacks,你需要运行一个机制,并且显示和维护一个非博客的首页。

更有用的方法,可能是利用WP的网页功能并且为你的首页使用这个功能。你可以将”关于网页”设置为entry point或者设置为站点的末页。你可能执行一些更动态的步骤,设置一个自定义网页,显示最近的评论,文章,类别,存档。请看看下面的例子。

时间参数

得到某个特别的时间段内发表的文章

  • hour=
  • minute=
  • second=
  • day= – 一个月中的每一天; 显示,例如,十五号发表的所有文章。
  • monthnum=
  • year=

网页参数

  • paged=2 -显示使用”以前发表的文章”链接时,通常在网页2上显示的文章。
  • posts_per_page=10 -每个网页显示的文章数目;-1这个值,会显示所有的文章。
  • order=ASC -按时间顺序显示文章,以相反的顺序显示DESC(默认)

Offset 参数

你不能转移或者忽视一个或者更多的原始文章,这些文章一般是你的query同时使用offset参数收集到的。

下面的函数会显示(1)最近的5篇文章

query_posts('showposts=5&offset=1');

根据参数排序

根据这个区给得到的文章排序

  • orderby=author
  • orderby=date
  • orderby=category
  • orderby=title
  • orderby=modified
  • orderby=modified
  • orderby=menu_order
  • orderby=parent
  • orderby=ID
  • orderby=rand

同时考虑”ASC”或者的”DESC”的排序参数

联合参数

你可能从上面的例子中注意到,你使用一个&(&符号)将参数组合在一起,像:

query_posts('cat=3&year=2004');

类别13,关于当前月份显示在主页上的文章:

if (is_home())  {
query_posts ($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp'))); }

在2.3版本中,这个参数组合会返回属于类别1同时属于类别3的文章,只显示两篇(2)文章,根据标题,按降序排列:

query_posts(array('category__and'=>array(1,3),'showposts'=>2,'orderby'=>title,'order'=>DESC));

在2.3和2.5版本中,你可能期待下面的内容,返回属于类别1并且标签为”苹果”的所有文章

query_posts('cat=1&tag=apples');

一个bug阻止这个运行。请看看Ticket #5433,一个工作区要搜索几个使用+的标签

query_posts('cat=1&tag=apples+apples');

对于先前的查询,这个会产生期待的结果。注意使用’cat=1&tag=apples+oranges’能够产生期待的结果。

资料来源:站长百科 Template Tags/query posts



本站文章未特殊注明均为原创,转载需经本人同意,请善用以下链接

Trackback: http://www.iros.me/powerful-query-posts.html/trackback

Google书签 新浪ViVi 365Key网摘 天极网摘 我摘 POCO网摘 博采网摘 YouNote网摘 和讯网摘 博拉网 igooi网摘 I2Key网摘 天下图摘 百特门网摘 Del.icio.us Yahoo书签 奇贴 QQ娱乐摘 添加到Digg! 添加到Facebook!

5 Responses to "学习使用强大的query_posts(),wordpress日志调用咱爱咋咋地~~"

1 | 俞昊然

五月 15th, 2009 at 10:54

Avatar

如果我想排除一个特定tag该怎么写呢?
tag=-sun+-sun好像不行哈。呵呵

2 | 波波

七月 13th, 2009 at 11:44

Avatar

因为要解决按照关键字调用的形态,被人推荐到这篇日志,受用了,留下脚印.

3 | tearsday

一月 20th, 2011 at 16:59

Avatar

正需要 非常详细 楼主哪里找到的这篇文章,官网没有啊

4 | ponytail

一月 21st, 2011 at 10:59

Avatar

To:tearsday
最下面最下面~ 站长百科是好地方的~~

5 | Chong.Freeman

七月 11th, 2011 at 22:15

Avatar

第一次见这么详细的关于 query_posts 函数的讲解。
学习了!

有这函数,做成什么 CMS 模板都很方便了。
如博主所说 wordpress日志调用咱爱咋咋地~~

Comment Form

*

[鼻血] [黑线] [鬼脸] [面条泪] [阴笑] [贼笑] [羞] [神气] [礼物] [生气] [满足] [游魂] [汗] [死光] [期待] [晕了] [无神] [扁] [感动] [怒了] [心心眼] [得意] [开心] [大泪] [大惊] [嘟嘴] [唱歌] [哈] [呵欠] [呜呜] [呆] [吓] [吐] [凸] [不爽] [ZZZ] [NANI?] [FUFU] [CHU]



Web Share

About Me

    Enjoy Work!&& Enjoy Life!

  • 年过半百的一半却只能通过绑定来实现社会化的不想宅却没有办法的挺宅的向往B型却只是O型的不会游泳所以只能沉沦腐海的爱K歌但还不到麦霸程度的现在貌似挺稀有的白羊挨踢代码女
  • 硬盘控、下载强迫症、HTC大脸人、伪谷粉
  • Money是好物!Wordpress是好物!Jquery是好物!

Latest Comments

  • 前端开发: 我看了下原文,horizontally 是水平的意思,希望博主尽早发现并修改
  • 前端开发: 第30条跟《高性能网站进阶指南》有冲突,书上是说css精灵要排成横的,而
  • amazon is my niche Keyword.: ... [Trackback]... [...] Read More: iros.me/2009-css-naked-day-jin-tian-shi-css-lu
  • My Homepage: ... [Trackback]... [...] Find More Informations here: iros.me/2009-css-naked-day-j
  • 在线k歌: 有意思 。。
  • liugod: 很好,作为参考
  • Modern Warfare 3: Modern Warfare 3... I saw this really good post today so I had to repost..........
  • En Vivo: Twitter Instantly connect to what's most important to you. Follow your friends, experts, favorite
  • 洋洋: 这个码字得多累啊。。
  • Chong.Freeman: 第一次见这么详细的关于 query_posts 函数的讲解。 学习了! 有这函数,做

疼讯微博口水地

My Place

    Posts 98  Comments 186  
    Blog stared at 2008.10.21
    Blog open at 2008.11.21   Free Traffic Counter
ponytail1985@hotmail.com 358589691 ponie325@gmail.com Ajax CommentLuv Enabled 275ca7ef21959162b094a66262fa328f

无觅相关文章插件,快速提升流量