📜  使用 meta_query 过滤 (1)

📅  最后修改于: 2023-12-03 15:22:14.377000             🧑  作者: Mango

使用 meta_query 过滤

WordPress 中,我们经常需要对文章或自定义文章类型进行查询或筛选,而 meta_query 就是其中一种非常强大的查询方式,可以帮助我们快速过滤符合我们需要的内容。本文将介绍 meta_query 的基本用法和示例代码。

什么是 meta_query

在 WordPress 中,每篇文章或自定义文章类型都可以添加自定义字段,比如文章的作者、发布日期、浏览次数等等。这些自定义字段就是文章的元数据(metadata),而 meta_query 就是基于这些元数据进行查询的工具。

meta_query 可以用来过滤文章或自定义文章类型中的元数据,可以查询指定字段的特定值、大于某个值、小于某个值、在某个范围内等等。

使用 meta_query 进行过滤

使用 meta_query 进行过滤非常简单,只需要在 WP_Query 对象中指定 meta_query 参数,值为一个数组,数组中的每个项表示一个查询条件。

下面是一个使用 meta_query 的示例代码:

$args = array(
    'post_type' => 'product',
    'meta_query' => array(
        array(
            'key' => 'price',
            'value' => 100,
            'compare' => '>',
            'type' => 'NUMERIC'
        )
    )
);
$query = new WP_Query( $args );

这段代码查询了所有产品(post_type 为 product)中,价格大于 100 的文章,并将结果存放在 $query 变量中。

在 meta_query 中,每个数组项代表一个查询条件,可以有多个条件。每个条件中,key 表示要查询的元数据的字段名,value 表示要查询的值,compare 表示查询的比较符,可以是 >、<、>=、<=、!=、LIKE 等等,type 表示查询的值的类型,可以是 STRING(字符串)、NUMERIC(数值)、BINARY(二进制)等等。

如果有多个条件,可以将它们都放在数组中,比如:

$args = array(
    'post_type' => 'product',
    'meta_query' => array(
        array(
            'key' => 'price',
            'value' => 100,
            'compare' => '>',
            'type' => 'NUMERIC'
        ),
        array(
            'key' => 'stock',
            'value' => 0,
            'compare' => '>',
            'type' => 'NUMERIC'
        )
    )
);
$query = new WP_Query( $args );

这段代码查询了所有产品中,价格大于 100 并且库存大于 0 的文章。

结语

meta_query 是 WordPress 中非常强大的查询工具,可以帮助我们快速筛选和过滤符合我们需求的内容。本文介绍了 meta_query 的基本用法和示例代码,希望能帮助到 WordPress 开发者。