WordPress META_QUERY>=&<=仅检索等于数值的帖子的运算符

时间:2018-01-10 作者:Joey Thomas

我有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作为大薪酬)

可能是因为我的逻辑错误,它管理>=和<;=,或者这些值不是真正的数字,因此无法正确搜索<;-我怀疑情况并非如此,但这让我绞尽脑汁已有一段时间了。

一如既往,如果您需要更多信息,请询问。非常感谢。

1 个回复
最合适的回答,由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\'
    ),
另一个查询也是如此

结束

相关推荐

PHP通知:未识别的索引

创建自定义帖子类型的新帖子时debug.log 充满了PHP Notice: Unidentified index: 每个元字段的警告。这个问题以前已经问过并回答过了here 我在那里实现了解决方案,但每次我创建这种类型的新帖子时,我仍然会看到debug.log.save方法的代码如下:/** Listener for saving post */ public function save() { $post_type_name = $this->post_type_name