2015-03-30 5 views
3

Я реализую фильтр для домов, и у меня есть два поля в моей базе данных: «Ванные комнаты» и «Туалеты». Проблема следующая. Когда я фильтрую, я хочу, чтобы мое значение было отфильтровано по сумме этих двух полей.Wordpress meta query сравнивает сумму двух ключей

Например: Я хочу дом с 2 ванными комнатами и в моей БД. У меня есть 1 ванная комната и 1 туалет. Это должно быть включено в результате.

Сейчас мой запрос работает только с ванными комнатами, а не с туалетами:

if (!empty($_GET['filter_bathrooms'])) { 
    $properties['meta_query'][] = array(
     'key' => '_property_bathrooms', 
     'value' => $_GET['filter_bathrooms'], 
     'compare' => '>=', 
     'type' => 'numeric', 
    ); 
} 

С помощью этого кода моя система будет только те дома, 2 ванные комнаты, а не с 2-х ванных комнат (+ туалетах).

Мое поле в базе данных для туалетов: '_property_toilets'.

Любая помощь?

+1

Я не думаю, что вы можете легко сделать такой запрос. Что делать, если вместо этого вы добавляете скрытую мета (например, 'bathroom_sum') в свой пользовательский пост, который обновляется каждый раз, когда обновляются два других? Затем вы можете сделать свой фильтр только с помощью этой мета-клавиши. – d79

ответ

0

Я думаю, что this - это то, что вы ищете. Таким образом, вы можете сортировать на основе разных пользовательских мета-полей.

  <? 
      $args = array(
       'post_type' => 'post', 
       'tax_query' => array(
        'relation' => 'OR', 
        array(
         'taxonomy' => 'category', 
         'field' => 'slug', 
         'terms' => array('quotes'), 
        ), 
        array(
         'taxonomy' => 'post_format', 
         'field' => 'slug', 
         'terms' => array('post-format-quote'), 
        ), 
       ), 
      ); 
      $query = new WP_Query($args); 
      ?>