在为我们的客户做的一个项目中,我的 WordPress 查询遇到了问题。基本上我的问题是我想用指定的 meta_keys 从数据库中获取帖子。我想用元键'_price'和xx和yy之间的值来获取我的帖子(wpcompare)。到目前为止工作正常。现在我想为制造商、类别和标签添加过滤器。这些过滤值都是多重的,所以你可以选择多个制造商。例如佳能和尼康。因此,使用 WP_MetaQuery 我可以过滤多个 meta_keys 和值,但我不能将查询与 AND 或 OR 结合起来。
让我举个例子,我的查询应该如何工作:
“给我所有 post_type 为“wpcompare”的帖子,其中 meta_value _price 在 100 到 200 美元之间,制造商 (_hersteller) 是佳能或尼康或索尼”。
我的头疯了,所以请帮助我。
非常感谢你:-)
这是我的代码:
if(isset($_POST) AND !empty($_POST))
{
$meta_query = array(
'relation' => 'AND',
array(
'key' => '_price',
'value' => array($_POST['p_from'], $_POST['p_to']),
'type' => 'CHAR',
'compare' => 'BETWEEN'
),
);
}
else
{
$meta_query = '';
}
$args = array(
'post_type' => 'wpcompare',
'post_status' => 'publish',
'paged' => $paged,
'meta_query' => $meta_query,
'posts_per_page' => ($per_page == false) ? 18 : $per_page,
'ignore_sticky_posts'=> true
);
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query($args)