Wordpress查询自定义字段编号BETWEEN两个查询变量

时间:2017-05-23 10:42:14

标签: php wordpress

我正在尝试列出一个名为“jobs”的查询自定义帖子类型的存档,每个类型都有一个自定义字段“minimum_salary”和“maximum_salary”。

在上一个搜索页面上,用户在搜索中输入两个值('min-salary'&'max-salary'),这些值将添加到存档页面的URL中。

我希望能够显示所有具有'minimum_salary'和'maximum_salary'的作业,以及用户在上一页输入的最小和最大工资变化。

到目前为止,请参阅下面的代码,感谢您的帮助。

<?php

$minSalaryVar = get_query_var('min-salary');
$maxSalaryVar = get_query_var('max-salary');

$taxArgs = array();


if ($minSalaryVar && $maxSalaryVar) {
  $taxArgs[] = array(
    'meta_query' => array(
      'relation' => 'AND',
      array(
        'key' => 'minimum_salary',
        'value' => array($minSalaryVar, $maxSalaryVar),
        'compare' => 'BETWEEN',
        'type' => 'numeric'
      ),
      array(
        'key' => 'maximum_salary',
        'value' => array($minSalaryVar, $maxSalaryVar),
        'compare' => 'BETWEEN',
        'type' => 'numeric'
      ),
    )
  );
}




   if ($taxArgs) {
  $args = array (
  'tax_query' => $taxArgs,
  );

  $argsNew = array_merge( $wp_query->query_vars, $args );
  query_posts( $argsNew );
} ?>

1 个答案:

答案 0 :(得分:0)

你需要两次使用'compare'='BETWEEN'两次,或者只比一次大于最低工资和另一个更大的两倍。以下我将让两个选项:

1:

if ($minSalaryVar && $maxSalaryVar) {
    $meta_query = array(
      'relation' => 'AND',
      array(
        'key' => 'minimum_salary',
        'value' => $minSalaryVar, 
        'compare' => '>=',
        'type' => 'numeric'
      ),
      array(
        'key' => 'maximum_salary',
        'value' => $maxSalaryVar,
        'compare' => '<=',
        'type' => 'numeric'
      ),
  );
}




   if ($taxArgs) {
  $args = array (
  'meta_query' => $meta_query,
  );

  $argsNew = array_merge( $wp_query->query_vars, $args );
  query_posts( $argsNew );
} ?>

2:

$taxArgs = array();


if ($minSalaryVar && $maxSalaryVar) {
  $meta_query = array(
        'key' => 'minimum_salary',
        'value' => array($minSalaryVar,$maxSalaryVar),
        'compare' => 'BETWEEN
        'type' => 'numeric'
  );
}




   if ($taxArgs) {
  $args = array (
  'meta_query' => $meta_query,
  );

  $argsNew = array_merge( $wp_query->query_vars, $args );
  query_posts( $argsNew );
} ?>

---编辑

您应该使用'meta_query'而不是'tax_query'