Как получить результат из meta_query() между двумя числами
24 янв. 2016 г., 15:03:32
Просмотры: 17.9K
Голосов: 7
У меня есть значение вида:
if ( ! empty( $_GET['filter-area'] ) ) {
$f = $_GET['filter-area'];
preg_match_all('!\d+!', $f, $matches); // Извлекаем все числа из строки
foreach($matches as $key) {
$first_val = $key[0]; // Первое число
$second_val = $key[1]; // Второе число
}
}
Теперь мне нужно выполнить поиск, чтобы получить все данные между этими двумя значениями.
Я попробовал так, но это работает только с одним значением.
if ( ! empty( $_GET['filter-area'] ) ) {
$meta[] = array(
'key' => REALIA_PROPERTY_PREFIX . 'attributes_area',
'value' => $first_val,
'compare' => '>=',
'type' => 'NUMERIC',
);
}
Как можно выполнить поиск по двум значениям?

Almeeraj Tourism
71
Все ответы на вопрос
1
3
Несколько мета-значений можно сравнить с помощью BETWEEN
, используя массив значений:
'meta_query' => array(
array(
'key' => REALIA_PROPERTY_PREFIX .'attributes_area',
'value' => array( $first_val, $second_val ),
'type' => 'numeric',
'compare' => 'BETWEEN',
), // Внутренний массив.
), // Внешний массив.
Вы можете увидеть это в Документации для разработчиков.

Mayeenul Islam
12.9K
24 янв. 2016 г. 15:53:04
Комментарии
В моем случае пришлось передать $first_val
и $second_val
через floatval()
, чтобы это заработало.

13 нояб. 2018 г. 18:46:53
Похожие вопросы
3
ответов