WP_Query 的所有参数及其说明
WP_Query 是 WordPress 提供的一个强大的查询工具,用于获取与当前页面或文章相关的内容。以下是 WP_Query 的所有参数及其说明,并提供了示例代码。
WP_Query 参数及示例
作者author
查询特定作者的文章。可以是作者 ID、作者登录名或作者昵称。
示例:作者为 "John Smith" 的所有文章
$query = new WP_Query( array( 'author_name' => 'john-smith' ) );
分类cat
查询特定分类目录的文章。可以是分类目录 ID、分类目录名称或分类目录 slug。
示例:分类目录为 "News" 的所有文章
$query = new WP_Query( array( 'category_name' => 'news' ) );
分类category__and
查询同时属于多个分类目录的文章。需要提供一个数组,包含多个分类目录 ID。
示例:同时属于分类目录 ID 2 和 3 的文章
$query = new WP_Query( array( 'category__and' => array( 2, 3 ) ) );
分类category__in
查询属于多个分类目录中任意一个的文章。需要提供一个数组,包含多个分类目录 ID。
示例:属于分类目录 ID 2 或 3 的文章
$query = new WP_Query( array( 'category__in' => array( 2, 3 ) ) );
分类category__not_in
查询不属于多个分类目录的文章。需要提供一个数组,包含多个分类目录 ID。
示例:不属于分类目录 ID 2 或 3 的文章
$query = new WP_Query( array( 'category__not_in' => array( 2, 3 ) ) );
标签tag
查询特定标签的文章。可以是标签 ID、标签名称或标签 slug。
示例:标签为 "WordPress" 的所有文章
$query = new WP_Query( array( 'tag' => 'wordpress' ) );
标签tag_id
查询特定标签的文章。必须是标签 ID。
示例:标签 ID 5 的所有文章
$query = new WP_Query( array( 'tag_id' => 5 ) );
标签tag__and
查询同时包含多个标签的文章。需要提供一个数组,包含多个标签 ID。
示例:同时包含标签 ID 5 和 6 的所有文章
$query = new WP_Query( array( 'tag__and' => array( 5, 6 ) ) );
标签tag__in
查询包含多个标签中任意一个的文章。需要提供一个数组,包含多个标签 ID。
示例:包含标签 ID 5 或 6 的所有文章
$query = new WP_Query( array( 'tag__in' => array( 5, 6 ) ) );
标签tag__not_in
查询不包含多个标签的文章。需要提供一个数组,包含多个标签 ID。
示例:不包含标签 ID 5 或 6 的文章
$query = new WP_Query( array( 'tag__not_in' => array( 5, 6 ) ) );
文章post_type
查询特定类型的文章。可以是任何已注册的自定义文章类型或默认文章类型。
示例:类型为 "portfolio" 的所有文章
$query = new WP_Query( array( 'post_type' => 'portfolio' ) );
文章post__in
查询特定文章。需要提供一个数组,包含多个文章 ID。
示例:ID 1、3 和 5 的文章
$query = new WP_Query( array( 'post__in' => array( 1, 3, 5 ) ) );
文章post__not_in
查询除了特定文章之外的文章。需要提供一个数组,包含多个文章 ID。
示例:除了 ID 1、3 和 5 之外的所有文章
$query = new WP_Query( array( 'post__not_in' => array( 1, 3, 5 ) ) );
查询s
查询包含特定关键词的文章。
示例:包含关键词 "WordPress" 的所有文章
$query = new WP_Query( array( 's' => 'wordpress' ) );
查询date_query
查询在特定日期范围内发布的文章。需要提供一个数组,包含多个日期查询参数。
示例:在 2022 年 1 月 1 日至 2022 年 12 月 31 日之间发布的所有文章
$query = new WP_Query( array( 'date_query' => array( 'after' => '2022-01-01', 'before' => '2022-12-31', ), ) );
查询meta_query
查询具有特定自定义字段值的文章。需要提供一个数组,包含多个自定义字段查询参数。
示例:具有自定义字段 "featured" 值为 "yes" 的所有文章
$query = new WP_Query( array( 'meta_query' => array( array( 'key' => 'featured', 'value' => 'yes', ), ), ) );
排序orderby
指定结果集按哪个参数排序。可以是多个可排序的参数之一。
示例:按发布日期降序排列所有文章
$query = new WP_Query( array( 'orderby' => 'date', 'order' => 'DESC', ) );
每页数量posts_per_page
指定每页显示的文章数量。
示例:每页显示 10 篇文章
$query = new WP_Query( array( 'posts_per_page' => 10, ) );
WP_Query 循环查询示例
以下是一个示例代码,展示如何使用 WP_Query 查询文章并循环输出文章标题。
<?php $args = array( 'post_type' => 'post', 'orderby' => 'date', 'order' => 'DESC', ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); the_title(); } } else { echo '没有帖子'; } wp_reset_postdata(); ?>
这个示例代码中,我们首先定义了查询参数 $args
,然后使用 new WP_Query
创建查询对象 $query
。通过 if ( $query->have_posts() )
判断是否有文章,如果有,使用 while
循环遍历每篇文章,并输出文章标题 the_title()
。最后,使用 wp_reset_postdata()
重置全局的 $post
对象。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123@#-@12-3.com举报,一经查实,本站将立刻删除。
共有 30 条评论