Как сделать проверку цены от и до в произвольном поле?

Решено

Здравствуйте, скажите как написать в WP_Query что бы вывести посты у которых есть произвольное поле и его значение входит в определенный диапазон. У меня есть 2 поля цены, которые вводит пользователь и мне нужно вывести все посты которые входят по произвольному полю в этот ценовой диапазон.

Добавить Комментарий
Ответ

Для выборки постов в определенном диапазоне по произвольному полю воспользуйтесь следующим кодом:

 if ($_GET['price_ot'] != '' || $_GET['price_do'] != '') { // если передано поле "Цена от" или "Цена до"
 if ($_GET['price_ot'] == '') $_GET['price_ot'] = 0; // если "Цена от" пустое, то значит от 0 и выше
 if ($_GET['price_do'] == '') $_GET['price_do'] = 9999999; // если "Цена до" пустое, то будет до 9999999
 $args['meta_query'][] = array( // пешем условия в meta_query
 'key' => 'price', // название произвольного поля
 'value' => array( (int)$_GET['price_ot'], (int)$_GET['price_do'] ), // переданные значения ОТ и ДО для интервала передаются в массиве
 'type' => 'numeric', // тип поля - число
 'compare' => 'BETWEEN' // тип сравнения, здесь это BETWEEN - т.е. между "Цены от" и до "Цены до"
 );
 }
 

Далее массив передаем в wp_query

$query = new WP_Query($args);

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.