本文目录
[隐藏]
- 1属性和方法到底是什么?
- 2WP_Query类的属性
- 2.1查询字符串:$query
- 2.2查询变量数组: $query_vars
- 2.3查询对象:$queried_object
- 2.4被查询对象的ID:$queried_object_id
- 2.5从文章查询返回的结果:$posts
- 2.6显示文章的数量:$post_count
- 2.7查询返回的文章的数量$found_posts
- 2.8分页数量:$max_num_pages
- 2.9当前文章索引:$current_post
- 2.10当前文章:$post
- 2.11条件标签:$is_{conditional}
- 3WP_Query类的方法
- 3.1init()
- 3.2parse_query( $query )
- 3.3parse_query_vars()
- 3.4get( $query_var )
- 3.5set( $query_var, $value )
- 3.6&get_posts()
- 3.7next_post()
- 3.8the_post()
- 3.9have_posts()
- 3.10rewind_posts()
- 3.11&query( $query )
- 3.12get_queried_object()
- 3.13
- 4
本文是《掌握 WP_Query》系列教程的第 5 部分,该系列共包含以下 19 个部分:
- 掌握 WP_Query : 入门介绍
- 掌握 WP_Query:教你使用Loop循环
- 掌握 WP_Query:相关的函数
- 掌握 WP_Query:行动器和过滤器
- 掌握 WP_Query:WP_Query类的属性和方法
- WP_Query 参数:文章、页面和文章类型
- WP_Query 参数:分类和标签
- WP_Query 参数:分类法(Taxonomies)
- WP_Query 参数:自定义字段(Custom Fields)
- WP_Query 参数:日期
- WP_Query 参数:状态、排序和分页
- WP_Query 参数:作者、搜索、密码、权限、缓存和返回字段
- 掌握 WP_Query:10个有用的例子
- 结合 WP_Query 与主查询(the Main Query)
- 掌握 WP_User_Query
- 掌握 WP_Comment_Query
- 掌握 WP_Meta_Query 和 WP_Date_Query
- WordPress 4.1的查询改进
- 掌握 WP_Query:结尾
欢迎大家来到“掌握WP_Query” 系列新的章节。到目前为止你学的怎么样?我希望大家能够在学习这些教程的过程中去享受它,就像我写这系列的教程的时候一样的去享受写的过程。
在这篇教程中,我们将要学习WP_Query类的属性和方法。但是,首先我想先讲一下在类中的“属性”和”方法”是什么。
坐稳了,可以开始了吗?
属性和方法到底是什么?
在PHP中,有写一个更清洁的方式编码方式:面向对象编程,或OOP。随着OOP中,我们使用“类”作为模板——我从Code Tuts+ 取了Jason Lengstorf的“为初学者准备的面向对象的PHP教程”句子作为例子:
类,举个例子,就像一个房子的模板:即使不存在这个房子,这个模板定义了房子的形状,并定义了房子的不同部分之间的关系明确的计划——就像是建房子的蓝图。
(请记住,WP_Query是WordPress核心中一个重要的类。)
当你了解PHP类的概念,“属性”,“方法”变得非常容易理解。就像是“变量”和“功能”只是同义词。在PHP中,属性是一个PHP类的变量,方法是一个PHP类的功能,这样去理解。
现在,我们已经介绍了“属性”,“方法”是什么,下面,让我们来认识每个属性和方法。
警告:直接更改属性是不明智的。正如官方文档所说,你应该学会使用WP_Query的方法联合使用它们。
WP_Query类的属性
让我们开始学习WP_Query类的属性吧,或者说是它的变量!
查询字符串:$query
这个属性储存了传递给$wp_query对象的查询相关变量。
查询变量数组: $query_vars
这个属性储存了相关联的变量和变量的值,集合成数组,传递给$query。
查询对象:$queried_object
这个属性储存了查询的对象,就像$post对象是针对文章查询的,$author对象是针对作者查询的。
被查询对象的ID:$queried_object_id
很好理解,这个就是查询对象的ID。
从文章查询返回的结果:$posts
这个属性储存了从查询返回回来的文章。
显示文章的数量:$post_count
这个属性储存了当前查询的文章的数量。
查询返回的文章的数量$found_posts
这个属性储存了没有LIMIT子句的SQL查询的文章数量。
分页数量:$max_num_pages
这个属性储存了文章的数量——它是由$posts_per_page除以$found_posts计算而来的。
当前文章索引:$current_post
这个属性储存了当前Loop循环中的文章索引。例如,当Loop循环刚刚开始的时候,$current_post被next_post()方法设置成-1。
当前文章:$post
这个属性不用多作解释,储存了当前文章。
条件标签:$is_{conditional}
下面的属性是布尔类型的,是为了标定当前文章的状态
- $is_single: 检查是否为单页的某类型文章(除了“附件”和“页”文章类型)
- $is_page: 检查是否的是页面。
- $is_archive: 检查是否是分类网页。
- $is_preview: 检查是否是预览页面。
- $is_date: 检查是否是一个基于日期的分类页面。
- $is_year: 检查是否是一个基于年份的分类页面。
- $is_month: 检查是否是一个基于月份的分类页面。
- $is_time: 检查是否是一个基于时间(小时,分钟,秒)的分类页面。
- $is_author: 检查是否是一个基于某作者的分类页面。
- $is_category: 检查是否是一个类型的分类页面。
- $is_tag: 检查是否是一个标签的分类页面。
- $is_tax: 检查是否是存档的分类页面。
- $is_search: 检查是否是查询返回结果的页面。
- $is_feed: 检查是否是订阅的页面。
- $is_comment_feed: 检查是否是订阅评论的页面。
- $is_trackback: 检查是否是引用的页面。
- $is_home: 检查是否是主页。
- $is_404: 检查是否是404页面。
- $is_comments_popup: 检查是否是评论弹出窗口的页面。
- $is_admin: 检查是否是管理员页面。
- $is_attachment: 检查是否有附件。
- $is_singular: 检查是否为单页的某类型文章(包括“附件”和“页”文章类型)。
- $is_robots: 检查是否是robots.txt查询
- $is_posts_page: 检查是否是发布文章页面(在管理员面板中设置“阅读设置”页面中)
- $is_paged: 检查是否进行了标页,并且不是第一页的标页
WP_Query类的方法
当我们学习完属性之后,让我们学习WP_Query类的方法吧。
init()
初始化方法,主要是初始化对象的的属性值为Null,0或者false。
parse_query( $query )
这个方法使用$query属性传递给查询其相应的属性(除了$posts,$post_count,$post和$current_post)
parse_query_vars()
这个方法重新传递变量给查询。
get( $query_var )
这个方法获取给定的查询变量。
set( $query_var, $value )
这个方法设置给定查询变量为一个特定值。
&get_posts()
这个方法返回的查询请求的文章,并填充$post和$ post_count属性。
next_post()
这个方法$ current_post索引递增,并推送文章到$posts变量,返回当前post对象(此方法必须使用在循环中)。
the_post()
这个方法设置了下一篇文章的全局变量$post(此方法必须使用在循环中)。
have_posts()
这个方法检查是否任何文章有需要做的后续工作,并如果没有返回FALSE。 (此方法必须使用在循环之前)
rewind_posts()
这个方法重置了$current_post和$post属性。
&query( $query )
这个方法调用了同级方法parse_query()和get_posts(),并且返回get_posts()方法的结果。
get_queried_object()
这个方法返回查询的对象(如果$queried_object没有被设置,则设置)
get_queried_object_id()
这个方法,就像上一个一样,返回的是查询对象的ID($queried_object_id)
小提示:如果有方法之前有符号&,这意味着该方法通过引用返回。
今日小结
我希望我设法让大家明白什么是类的“属性”和“方法”。如果你通过本文了解到WP_Query类的属性和方法,我就觉得已经做了很了不起的事情了。
对这篇文章,想吐槽吗?请在下面的评论部分,与我们分享您的想法。如果你喜欢这篇文章,不要忘了分享给你的朋友。
系列文章下个部分见。
阅读该系列的其他文章: 上一篇:掌握 WP_Query:行动器和过滤器 下一篇:WP_Query 参数:文章、页面和文章类型