wordpress主题开发函数(五):query_posts()函数

说到wordpress主题开发,有一个wordpress函数我们基本上是绕不开的,它就是query_posts()函数。query_posts()函数从字面意思看,就是从数据库查询post文章,不错,query_posts()函数就是用来获取wordpress文章列表的。当然,获取文章分类中的文章列表不需要用到这个函数,query_posts()函数一般用于获取指定的某些文章列表。下面,我们就来了解一下这个强大的query_posts()函数吧。

语法:

query_posts(array/ strint $args);

参数说明:

query_posts()参数可以是一个连接字符串,也可以是一个数组,具体看自己的习惯。

参数详解:

 

1:分类参数:
只显示特定分类下的文章。
cat :分类ID,如是负数,则不显示该分类文章;如为正数,则只查询该分类文章。
如:
query_posts(‘cat=4’);  //只查询分类ID=4的分类文章
query_posts(‘cat=-3’)  //查询所有分类的文章,排除分类ID=3
query_posts(‘cat=2,6,17,38’); //查询这几个分类的文章
category_name:分类名称
category_and:多个分类ID
category_in: 分类ID,只显示该分类文章,子分类的都不显示。
category_not_in :分类ID,不显示该分类的文章。
如:
“category__in” => array( 1, 3)   //显示分类ID为1和3的文章,
‘category__not_in’ => array(2,4),   //排除分类ID为2和4的文章
’category__in’ => range(3, 6),      //显示从分类ID 3到6之间几个分类的文章。
2:标签参数:
显示特定标签下的文章。
tag:标签ID,如负数,则不显示该标签下文章;如正数,则只显示该标签下的文章。
tag_in:只显示该标签下的文章。类似category__in
tag_not_in:不显示该标签下的文章。类似category__not_in
tag_slug_and:多个标签别名
tag_slug_in:标签别名
3:作者参数:
author:作者ID,负数,即表示查询除该作者外的所有文章;正数,表示只查询该作者的文章。
author_name:作者昵称
4:文章与页面参数:
p:文章ID。
name:文章别名。
page_id:页面ID。
pagename:页面别名。
posts_per_page:文章显示数量,-1为全部。
showposts:文章列表分页参数,不指定时,则按“后台设置→阅读设置→博客页面至多显示”来分页。
post_in:指定要查询的文章ID,类似category__in。
post_not_in:排除的文章ID,类似category__not_in。
post_type:文章类型,默认值为post;可用值包括any、attachment、page、post或revision。any可检索到除修订版外的所有页面类型。
post_status:可用值有publish、pending、draft、future、private、trash。
post_parent:返回指定ID文章的子页面。
5:置顶文章参数:
在查询中,被设为“置顶”的文章会显示在其它文章之前,除非该文章已经被caller_get_posts=1参数排除。
post_in:如果值为get_option(‘sticky_posts’)时,则返回所有置顶文章的数组
返回第一篇置顶文章:
$args = array(
‘posts_per_page’ => 1,
‘post__in’ => get_option(‘sticky_posts’),
‘caller_get_posts’ => 1
);
query_posts($args);
该方法返回最新发表的置顶文章,若当前无置顶文章,则返回最新发表的文章。
6:时间参数:
检索特定时间段内发表的文章。
hour:小时,范围从0到23。
minute:分钟,范围从0到60。
second:秒,范围从0到60。
day:日,范围从1到31。
monthnum:月,范围从1到12。
year:年,如2018。
w:一年中的第几周,范围从0到53。
offset(偏移)参数:排除Loop循环中出现的第一篇文章,
以下代码显示最近一篇文章之后的5篇文章:
query_posts(‘posts_per_page=5&offset=1’);
7:排序参数:
orderby=author 按作者排序
orderby=date 按日期排序
orderby=title 按名称排序
orderby=modified 按修改时间排序
orderby=ID 按ID排序
orderby=rand 随机排序
orderby=comment_count 按评论数排序
order=ASC 升序,从最低值到最高值
order=DESC 降序,从最高值到最低值
8:自定义字段参数:
根据自定义关键字或值检索文章(或页面)。
返回关键字为 ‘color’ 且值为’blue’的文章:
query_posts(‘meta_key=color&meta_value=blue’);
返回自定义字段关键字为’color’的文章,无论自定义字段值为何:
query_posts(‘meta_key=color’);
返回自定义字段值为’color’的文章,无论关键字为何:
query_posts(‘meta_value=color’);

注意事项:

在使用query_posts()函数来查询文章列表时,需要特别注意:因为使用query_posts()查询时,会修改loop主循环,会修改循环中的全局变量,所以,我们在使用完query_posts()函数后,要记得使用wp_reset_query()关闭query_posts()循环,再次进入主循环。

常用案例:

案例:最新文章10篇并排除置顶文章
<!– 最新文章 –>
<div class=”new_post”>
<h2>最新文章</h2>
<?php
query_posts(‘posts_per_page=10&orderby=new&ignore_sticky_posts=1’);
while(have_posts()):the_post();
echo ‘<li><a href=”‘.get_permalink().'” title=”‘.$post->post_title.'”>’.$post->post_title.'</a></li>’;
endwhile;
wp_reset_query();
?>
</div>

上例中用到了3个参数:

posts_per_page=10 //显示10篇
orderby=new //查询最新文章
ignore_sticky_posts=1  //排除置顶文章

query_posts()最我们进行wordpress主题开发时必不可少的函数,所以,作为一个wordpress主题开发者,这个函数必须要熟练掌握。

人已赞赏
WP实用教程

wordpress主题开发函数(四):tag标签判断函数

2018-2-24 15:22:50

WP实用教程

wordpress主题开发函数(六):wp_enqueue_script()添加JS脚本函数

2018-2-24 15:23:32


版权免责声明

本资源仅用于个人学习测试使用,禁止用于任何商业环境,请于下载后24小时内 删除本资源!

本文所有相关技术/资源内容统一放在下载包里

  1. 1、本网站名称:指点聚源码
  2. 2、本站永久网址:https://www.zhidianju.com
  3. 3、站内所有资源均可通过日常签到等任务进行免费兑换,记得每日来本站签到哦~!(由于模板不是很完善签到 需刷新一下!)。
  4. 4、如果您觉得本站有帮助到您,也想给本站一些帮助。您可以再下方打赏本站。
  5. 5、如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
  6. 6、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
  7. 7、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁 止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支 持你喜欢的作者,谢谢!
  8. 8、本站资源大多存储在云盘,如发现链接失效 【链接失效】 我们会第一时间更新。本站提供的源码、模板、软件工具等其他资源, 都不包含技术服务 请大家谅解!
  9. 9、如遇到加密压缩包,默认解压密码为"www.zhidianju.com",如遇到无法解压的请联系管理员!
  10. 10、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索