$tax_query = array(
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $ajs_cat,
)
);
$args = array(
'post_type' => 'post',
'orderby' => 'menu_order',
'posts_per_page' => $per_page,
'paged' => $paged,
'tax_query' => $tax_query,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'price_min',
'value' => array($min_price, $max_price),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
array(
'key' => 'price_max',
'value' => array($min_price, $max_price),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
)
);
我正在尝试根据搜索的预算最低值(price_min)和最大值(price_max)返回行为。
因此,如果行为'X'的最低费用为3000(price_min),最高费用为6000(price_max)
搜索A :('X'在结果中)
我搜索的预算最低为3000($ min_price),最高为5500($ max_price)我在结果中返回'X'。
搜索B :('X'不在结果中)
我使用最低3500($ min_price)和最高5500($ max_price)的预算进行搜索,我希望在结果中看到“X”,因为我可以根据预算支付给他。
我需要'X'在两个实例中都返回
有人可以帮我指出正确的方向吗?
答案 0 :(得分:1)
不应该是
array(
'key' => 'price_min',
'value' => $min_price,
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
),
array(
'key' => 'price_max',
'value' => $max_price,
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
答案 1 :(得分:0)
$tax_query = array(
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $ajs_cat,
)
);
$args = array(
'post_type' => 'post',
'orderby' => 'menu_order',
'posts_per_page' => $per_page,
'paged' => $paged,
'tax_query' => $tax_query,
'meta_query' => array(
array(
'key' => 'price_min',
'value' => $min_price,
'compare' => '>='
),
array(
'key' => 'price_max',
'value' => $max_price,
'compare' => '<='
),
)
);