• 开启全站HTTPS。2017-04-29
  • 本站为非盈利性站点,所得收入全部用于网站服务器及其他费用。2015-10-15
  •    2年前 (2016-06-13)  WordPress教程 |   抢沙发  15 
    文章评分 0 次,平均分 0.0

    欢迎大家来到“掌握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类的属性和方法,我就觉得已经做了很了不起的事情了。

     

    除特别注明外,本站所有文章均为小浩博客原创,转载请注明出处来自https://www.xhsay.com/wordpress-wp-query.html

    关于
    小浩博客(www.xhsay.com)是由Tovey建立的个人站点,主要致力于整合并分享各种互联网及网站建设的资源。

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册