我有WordPress查询参数需要根据两个元键的值来过滤帖子,这两个值的值是> =< =两个数字。
$args = array(
'post_type' => 'vacancy',
'post_status' => 'publish'
);
$vacancy_small_salary = 3000; //these are dynamically inputted from $_POST
$vacancy_large_salary = 5000; //these are dynamically inputted from $_POST
//append search queries to arguments
if ( !is_null($vacancy_small_salary) && !is_null($vacancy_large_salary) )
$args['meta_query'] = array(
'relation' => 'AND',
array(
'key' => 'vacancy_small_salary',
'value' => $vacancy_small_salary,
'operator' => '>=',
'type' => 'NUMERIC'
),
array(
'key' => 'vacancy_large_salary',
'value' => $vacancy_large_salary,
'operator' => '<=',
'type' => 'NUMERIC'
)
);
我遇到的问题是,它找不到$ vacancy_small_salary大于输入var的帖子,而$ vacnacy_large_salary小于它输入的var。
但是,当两个值相等时,它会发现帖子(例如,如果帖子有3000作为小工资,5000就是大工资。)
可能是因为我管理的方式&gt; =和&lt; =的逻辑是错误的,或者值可能不是真正的数字,所以无法正常搜索? &lt; - 我怀疑情况并非如此,但现在已经绞尽脑汁了。
如果您需要更多信息,请随时询问。谢谢。
答案 0 :(得分:0)
看起来我找到了解决方案。
我需要在meta_query中使用比较而不是运算符
所以
exec()
变为
array(
'key' => 'vacancy_small_salary',
'value' => $vacancy_small_salary,
'operator' => '>=',
'type' => 'NUMERIC'
),
和其他查询相同