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 条评论