释放WP_Query的力量:探索属性和方法

   2025-07-20 admin00100

欢迎来到“掌握WP_Query”系列的另一部分。到目前为止我们做得怎么样?我希望您喜欢这些教程,就像我们喜欢编写它们一样。

在本教程中,您将了解WP_Query类的属性和方法。但首先,我认为讨论一下类中的“属性”和“方法”是合适的。

我们可以吗?

属性和方法到底是什么?

在PHP中,有一种更简洁的方式编写代码:面向对象编程,或OOP。对于OOP,我们使用“类”作为蓝图—我从CodeTuts+的一篇经典帖子中获取了这个术语,JasonLengstorf的“面向对象的PHP初学者”:

例如,类就像房子的蓝图。它在纸上定义了房子的形状,清楚地定义和规划了房子不同部分之间的关​​系,即使房子并不存在。

(请记住WP_Query是WordPress核心的重要类。)

当您理解PHP类的概念时,“属性”和“方法”就会变得非常容易理解,因为这些词只是“变量”和“函数”的同义词。是的,属性是PHP类的变量,方法是PHP类的函数。

现在我们已经介绍了它们是什么,让我们来了解每个属性和方法。

警告:直接更改属性是不明智的。正如Codex所说,您应该使用WP_Query的方法与它们交互。

WP_Query类的属性

让我们从WP_Query类的属性或变量开始。

查询字符串:$query

此属性存储传递给$wp_query对象的查询。

查询变量数组:$query_vars

此属性存储$query的变量(及其值)的关联数组。

查询对象:$queried_object

该属性存储当前查询的对象,如$post对象(如果是post查询)或$author对象(如果是作者查询)。

查询对象的ID:$queried_object_id

该属性存储查询对象的ID。

查询返回的帖子:$posts

此属性存储从查询返回的帖子。

显示的帖子数量:$post_count

此属性存储当前查询的帖子数。

查询返回的帖子数:$found_posts

此属性存储SQL查询中不包含LIMIT子句的帖子数量。

页数:$max_num_pages

此属性存储页数-计算方法是将$found_posts除以$posts_per_page。

当前帖子的索引:$current_post

该属性存储循环中当前项的索引号。例如,如果循环刚刚开始,则为-1,并且通过next_post()方法递增。

当前帖子:$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:检查是否是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)

此方法获取给定的查询变量。

设置($query_var,$value)

此方法将给定的查询变量设置为特定值。

&get_posts()

此方法返回查询请求的帖子并填充$posts和$post_count属性。

next_post()

此方法增加$current_post索引并前进到$posts中的下一篇文章,返回当前的文章对象。(此方法必须在循环内使用才能正常工作。)

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类的属性和方法的用途,我可以说我做得不错!

您对这篇文章有什么要补充的吗?在下面的评论部分与我们分享您的想法。如果您喜欢这篇文章,请不要忘记与您的朋友分享。

本系列下一部分见!

 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  RSS订阅
Powered By DESTOON