Wordpress meta_query> =& < =运算符仅检索等于数值

时间:2018-01-09 10:18:20

标签: php wordpress

我有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; - 我怀疑情况并非如此,但现在已经绞尽脑汁了。

如果您需要更多信息,请随时询问。谢谢。

1 个答案:

答案 0 :(得分:0)

看起来我找到了解决方案。

我需要在meta_query中使用比较而不是运算符

所以

exec()

变为

array(
  'key'  => 'vacancy_small_salary',
  'value' => $vacancy_small_salary,
  'operator'  => '>=',
  'type' => 'NUMERIC'
),

和其他查询相同