我有WordPress查询参数,需要根据两个meta键的值筛选帖子,如果这两个值>=和<;=到两个数字。
$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\'
)
);
$wp_query = new WP_Query( $args );
我遇到的问题是,它找不到的职位的$空缺\\u small\\u薪水大于输入的var,而$vacnacy\\u large\\u薪水小于输入的var。
然而,当这两个值相等时,它确实会找到职位(即,如果一个职位有3000作为小薪酬,5000作为大薪酬)
可能是因为我的逻辑错误,它管理>=和<;=,或者这些值不是真正的数字,因此无法正确搜索<;-我怀疑情况并非如此,但这让我绞尽脑汁已有一段时间了。
一如既往,如果您需要更多信息,请询问。非常感谢。
最合适的回答,由SO网友:Joey Thomas 整理而成
看来我找到了解决办法。
我需要使用compare 而不是operator 在meta\\u查询中
所以
array(
\'key\' => \'vacancy_small_salary\',
\'value\' => $vacancy_small_salary,
\'operator\' => \'>=\',
\'type\' => \'NUMERIC\'
),
成为
array(
\'key\' => \'vacancy_small_salary\',
\'value\' => $vacancy_small_salary,
\'compare\' => \'>=\',
\'type\' => \'NUMERIC\'
),
另一个查询也是如此