当前位置:首页>WordPress建站>WordPress开发>掌握 WP_Query:WP_Query类的属性和方法

掌握 WP_Query: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类的属性和方法,我就觉得已经做了很了不起的事情了。

对这篇文章,想吐槽吗?请在下面的评论部分,与我们分享您的想法。如果你喜欢这篇文章,不要忘了分享给你的朋友。

系列文章下个部分见。

原文出自:http://code.tutsplus.com/tutorials/mastering-wp_query-properties-and-methods–cms-23162

痴空见观@WordPress大学 原创翻译,未经允许,禁止转载和采用本译文。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
欢迎关注WordPress大学公众号 WPDAXUE
WordPress开发

掌握 WP_Query:行动器和过滤器

2016-2-26 8:58:38

WordPress开发

WordPress 多媒体上传组件入门

2016-2-28 10:39:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索