本系列文章将深入探讨WP_Query
的精髓。在开始之前,让我们快速回顾一下WP_Query
参数的继承机制。exclude_from_search
设置为true
的文章也将被排除在搜索结果之外。
如果您未在查询参数中指定状态,WordPress 将默认使用继承状态。继承状态同时适用于附件和修订版。在编辑屏幕上上传的媒体文件会附加到当前正在编辑的文章中。因此,它们与父文章具有相同的状态是合理的。同样,文章的修订版也使用相同的机制。
排序参数
您可以使用以下两个参数进行排序:
orderby
参数:您可以根据一系列字段对文章进行排序:relevance
:按搜索词排序。优先考虑完整的句子匹配。之后,我们将继续关注标题中的所有搜索词、标题中的一些搜索词以及文章中的搜索词。post_name__in
:保留post_name__in
参数中给定的文章slug顺序。post_parent__in
:保留post_parent__in
参数中给定的父文章顺序。当您使用post_name__in
并且ignore_sticky_posts
设置为true
时,orderby
参数将被忽略。您还可以选择仅输出在分页页面中出现的页面。例如,如果您想显示上面示例中第三页上将显示的20篇文章,您可以使用以下代码:$args = array( 'posts_per_archive_page' => '20', 'paged' => '3' );
另一种查询相同文章的方法是使用offset
参数:
$args = array( 'posts_per_page' => '20', 'offset' => '40' );
这将跳过前40篇文章(这将出现在前两页存档页面中),并获取接下来的20篇文章(这将出现在第三页存档页面中)。WordPress 的魅力之一在于它经常为您提供多种实现目标的方法!
您还可以完全关闭分页功能,以确保所有文章都显示在同一页面上:
$args = array( 'nopaging' => true );
总结
WP_Query
类在确定要查询的文章数量、显示文章的顺序以及要显示的文章状态方面提供了极大的灵活性。
其中一些参数对于查询特定类型的文章至关重要(例如,附件的'post_status' => 'inherited'
),而其他参数只是让您更好地控制查询的运行方式。
通过使用这些参数,您可以创建自定义查询,这些查询的功能远不止简单地输出最新的已发布文章。
此文章已更新,并包含来自 Nitish Kumar 的贡献。Nitish 是一位网络开发人员,拥有在各种平台上创建电子商务网站的经验。他利用空闲时间从事个人项目,使他的日常生活更轻松,或者与朋友一起进行漫长的傍晚散步。
以上是WP_QUERY参数:状态,顺序和分页的详细内容。更多信息请关注PHP中文网其他相关文章!