Codex
Codex tools: Log in
zh-cn:Class Reference/WP Query
Languages: English • Italiano • 中文(简体) • 日本語 • (Add your language)
Contents
[hide]
1 描述
2 与WP_Query的互动
3 用法
4 方法和属性
4.1 属性
4.2 方法
5 参数
5.1 作者
5.2 分类目录
5.3 标签
5.4 类别
5.5 搜索
5.6 文章 & 页面
5.7 类型
5.8 状态
5.9 分页
5.10 排序
5.11 置顶文章
5.12 时间
5.13 自定义字段
5.14 权限
5.15 缓存
5.16 返回字段
6 过滤器
7 源文件
8 资源
9 相关信息
9.1 Articles
9.2 Code Documentation
描述
WP_Query 是定义于 wp-includes/query.php 中的一个用于处理复杂的请求wordpress博客中文章或页面的类。 wp-blog-header.php (或在wp版本Version 2.0中的类) 提供了 $wp_query 对象定义当前请求的信息, 然后 $wp_query 决定其属于哪种类型的查询(可能是一个分类存档、日期存档、feed或搜索)并获取所请求的文章。它在请求中保留的众多信息可在稍后使用。
与WP_Query的互动
多数情况下,你不用通过处理内部类或全局变量就能找到你所需要的信息。当需要某些信息的时候,这里的众多函数即可供你调用。
WP_Query通常用于这两种情况。 第一种是获取当前WordPress正在处理的请求类型。利用$is_*属性并结合Conditional Tags就可以保存这些数据信息。这是插件作者们经常遇到的情况(也是主题作者第二常见的)。
第二种情况用于The Loop。WP_Query 为主循环中的常见任务提供了众多函数。 首先, have_posts()通过$wp_query->have_posts()的形式进行调用,以查询是否有文章。若有,则利用 have_posts() 作为判断条件开始 while 循环。只要有文章要显示就不断地迭代该操作。 如前所述,在每一次迭代的时候, the_post()函数会建立内部变量$wp_query和全局变量$post(依赖于Template Tags ),以 $wp_query->the_post() 的形式调用。写主循环的时候你应该会用上这些函数。可参考 The Loop 和 The Loop in Action 获得更多信息。
Note: 如果你的查询操作中使用了 the_post(), 你应该调用 wp_reset_postdata() 使得之后的 Template Tags 能再次对当前文章进行查询操作。