Wordpress WP_Query 与 meta_key 的多个 meta_values
Posted
技术标签:
【中文标题】Wordpress WP_Query 与 meta_key 的多个 meta_values【英文标题】:Wordpress WP_Query with multiple meta_values for a meta_key 【发布时间】:2016-03-04 14:38:50 【问题描述】:我正在尝试运行 WP_Query,以便在我的数据库中搜索具有多个元值的所有产品。
例如
产品 1 -> meta_key['key1'] ->meta_value['value1'] 产品 2 -> meta_key['key1'] ->meta_value['value2'] 产品 3 -> meta_key['key1'] ->meta_value['value3']所以我想获得所有三种产品。我的论点是
$args = array(
'post_type' => 'product',
'posts_per_page' => 2,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'key1',
'value' => 'val1',
'compare' => '='
),
array(
'key' => 'key1',
'value' => 'val2',
'compare' => '='
),
array(
'key' => 'key1',
'value' => 'val3',
'compare' => '='
),
),
'paged' => $paged
);
问题是没有产品被退回。相反,如果只给一个 meta_key => meta_value 对它工作正常
$args = array(
'post_type' => 'product',
'posts_per_page' => 2,
'orderby' => 'title',
'order' => 'ASC',
'meta_key' => 'key1',
'meta_value' =>'val1',
'paged' => $paged
);
【问题讨论】:
【参考方案1】:您应该使用IN
作为compare
值,如下所示:
$args = array(
'post_type' => 'product',
'posts_per_page' => 2,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'key1',
'value' => array('val1','val2','val3'),
'compare' => 'IN',
),
),
'paged' => $paged
);
希望对你有帮助!
【讨论】:
以上是关于Wordpress WP_Query 与 meta_key 的多个 meta_values的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress - 在类别存档中使用 wp_query - 如何显示适当的类别?
当前时间之后事件的WordPress WP_Query查询事件发布类型