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

wufei123 2024-06-02 阅读:8 评论:0
欢迎来到“掌握 WP_Query”系列的另一部分。到目前为止我们做得怎么样?我希望您喜欢这些教程,就像我们喜欢编写它们一样。 在本教程中,您将了解 WP_Query 类的属性和方法。但首先,我认为讨论一下类中的“属性”和“方法”是合...

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

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

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

我们可以吗?

属性和方法到底是什么?

在 PHP 中,有一种更简洁的方式编写代码:面向对象编程,或 OOP。对于 OOP,我们使用“类”作为蓝图 — 我从 Code Tuts+ 的一篇经典帖子中获取了这个术语,Jason Lengstorf 的“面向对象的 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 类的属性和方法的用途,我可以说我做得不错!

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

本系列下一部分见!

以上就是释放 WP_Query 的力量:探索属性和方法的详细内容,更多请关注知识资源分享宝库其它相关文章!

版权声明

本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 华为 Mate 70 性能重回第一梯队 iPhone 16 最后一块遮羞布被掀

    华为 Mate 70 性能重回第一梯队 iPhone 16 最后一块遮羞布被掀
    华为 mate 70 或将首发麒麟新款处理器,并将此前有博主爆料其性能跑分将突破110万,这意味着 mate 70 性能将重新夺回第一梯队。也因此,苹果 iphone 16 唯一能有一战之力的性能,也要被 mate 70 拉近不少了。 据悉,华为 Mate 70 性能会大幅提升,并且销量相比 Mate 60 预计增长40% - 50%,且备货充足。如果 iPhone 16 发售日期与 Mate 70 重合,销量很可能被瞬间抢购。 不过,iPhone 16 还有一个阵地暂时难...
  • 酷凛 ID-COOLING 推出霜界 240/360 一体水冷散热器,239/279 元

    酷凛 ID-COOLING 推出霜界 240/360 一体水冷散热器,239/279 元
    本站 5 月 16 日消息,酷凛 id-cooling 近日推出霜界 240/360 一体式水冷散热器,采用黑色无光低调设计,分别定价 239/279 元。 本站整理霜界 240/360 散热器规格如下: 酷凛宣称这两款水冷散热器搭载“自研新 V7 水泵”,采用三相六极马达和改进的铜底方案,缩短了水流路径,相较上代水泵进一步提升解热能力。 霜界 240/360 散热器的水泵为定速 2800 RPM 设计,噪声 28db (A)。 两款一体式水冷散热器采用 27mm 厚冷排,...
  • 惠普新款战 99 笔记本 5 月 20 日开售:酷睿 Ultra / 锐龙 8040,4999 元起

    惠普新款战 99 笔记本 5 月 20 日开售:酷睿 Ultra / 锐龙 8040,4999 元起
    本站 5 月 14 日消息,继上线官网后,新款惠普战 99 商用笔记本现已上架,搭载酷睿 ultra / 锐龙 8040处理器,最高可选英伟达rtx 3000 ada 独立显卡,售价 4999 元起。 战 99 锐龙版 R7-8845HS / 16GB / 1TB:4999 元 R7-8845HS / 32GB / 1TB:5299 元 R7-8845HS / RTX 4050 / 32GB / 1TB:7299 元 R7 Pro-8845HS / RTX 2000 Ada...
  • python中def什么意思

    python中def什么意思
    python 中,def 关键字用于定义函数,这些函数是代码块,执行特定任务。函数语法为 def (参数列表)。函数可以通过其名字和圆括号调用。函数可以接受参数作为输入,并在函数体中使用参数名访问。函数可以使用 return 语句返回一个值,它将成为函数调用的结果。 Python 中 def 关键字 在 Python 中,def 关键字用于定义函数。函数是代码块,旨在执行特定任务。 语法 def 函数定义的语法如下: def (参数列表): # 函数体 示例 定义...
  • python中int函数的用法

    python中int函数的用法
    int() 函数将值转换为整数,支持多种类型(字符串、字节、浮点数),默认进制为 10。可以指定进制数范围在 2-36。int() 返回 int 类型的转换结果,丢弃小数点。例如,将字符串 "42" 转换为整数为 42,将浮点数 3.14 转换为整数为 3。 Python 中的 int() 函数 int() 函数用于将各种类型的值转换为整数。它接受任何可以解释为整数的值作为输入,包括字符串、字节、浮点数和十六进制表示。 用法 int(object, base=10) 其中...