dicem
@dicem

WORDPRESS Как вывести записи по нескольким значениям одного пользовательского поля?

Здравствуйте, имеется фильтр, который выводит через ajax квартиры, у каждой квартиры имеется кол-во комнат. Также в фильтре можно выбрать кол-во комнат в виде таких кнопок:
5c16d602b4a46293277155.png
также можно выбрать несколько вариантов комнатности искомых квартир:
5c16d6195f603313849739.png

Вопрос состоит во в чем, за комнатность у меня отвечает одно пользовательское поле:
5c16d6690b649203314154.png

Ранее квартиры были как радиокнопки, поэтому и обрабатывал я одно занчение, а теперь получается придется обрабатывать массив значений, понятия не имею как это сделать.
Прошлый обработчик комнат:
// Условие 9: Комнатность
		if( isset( $_POST['room'] ) && ($_POST['room'] != '') )
			$args['meta_query'][] = array(
				'key' => 'room',
				'value' => $_POST['room'],
				'type' => 'numeric',
				'compare' => 'LIKE'
			);

Прошу помощи, заранее огромное спасибо!
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
dicem
@dicem Автор вопроса
Нашел решение не поверите где (в документации Т_Т)
Новый запрос выглядит как:
if( 
		(isset( $_POST['roomC'] ) && ($_POST['roomC'] != '')) ||
		(isset( $_POST['room1'] ) && ($_POST['room1'] != '')) ||
		(isset( $_POST['room2'] ) && ($_POST['room2'] != '')) ||
		(isset( $_POST['room3'] ) && ($_POST['room3'] != '')) ||
		(isset( $_POST['room4'] ) && ($_POST['room4'] != '')) ||
		(isset( $_POST['room5'] ) && ($_POST['room5'] != ''))
	  ){
	  	$arrRooms = [];
	  	if ( isset( $_POST['roomC'] ) && ($_POST['roomC'] != '') ) $arrRooms[] = 'C';
	  	if ( isset( $_POST['room1'] ) && ($_POST['room1'] != '') ) $arrRooms[] = '1';
	  	if ( isset( $_POST['room2'] ) && ($_POST['room2'] != '') ) $arrRooms[] = '2';
	  	if ( isset( $_POST['room3'] ) && ($_POST['room3'] != '') ) $arrRooms[] = '3';
	  	if ( isset( $_POST['room4'] ) && ($_POST['room4'] != '') ) $arrRooms[] = '4';
	  	if ( isset( $_POST['room5'] ) && ($_POST['room5'] != '') ) $arrRooms[] = '5+';

		$args['meta_query'][] = array(
			'key' => 'room',
			'value' => $arrRooms,
			'type' => 'char',
			'compare' => 'IN'
		);
	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
san_jorich
@san_jorich
Творческий кодер
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы