Сортировка у меня на php
function go_filter() { // наша функция
$args = array(); // подготовим массив
$args['meta_query'] = array('relation' => 'AND'); // отношение между условиями, у нас это "И то И это", можно ИЛИ(OR)
global $wp_query; // нужно заглобалить текущую выборку постов
if (!empty($_GET['space'])) { // если передан массив с фильтром по комнатам
$args['meta_query'][] = array( // пешем условия в meta_query
'key' => 'space_num', // название произвольного поля
'value' => $_GET['space'], // переданное значения, $_GET['rooms'] содержит массив со значениями отмеченных чекбоксов
'type' => 'numeric', // тип поля - число
'compare' => 'IN' // тип сравнения IN, т.е. значения поля комнат должно быть одним из значений элементов массива
);
}
if (!empty($_GET['inverter'])) { // если передан массив с фильтром по комнатам
$args['meta_query'][] = array( // пешем условия в meta_query
'key' => 'inverter_num', // название произвольного поля
'value' => $_GET['inverter'], // переданное значения, $_GET['rooms'] содержит массив со значениями отмеченных чекбоксов
'type' => 'numeric', // тип поля - число
'compare' => 'IN' // тип сравнения IN, т.е. значения поля комнат должно быть одним из значений элементов массива
);
}
if (!empty($_GET['made'])) { // если передан массив с фильтром по комнатам
$args['meta_query'][] = array( // пешем условия в meta_query
'key' => 'made', // название произвольного поля
'value' => $_GET['made'], // переданное значения, $_GET['rooms'] содержит массив со значениями отмеченных чекбоксов
'type' => 'numeric', // тип поля - число
'compare' => 'IN' // тип сравнения IN, т.е. значения поля комнат должно быть одним из значений элементов массива
);
}
query_posts(array_merge($args,$wp_query->query)); // сшиваем текущие условия выборки стандартного цикла wp с новым массивом переданным из формы и фильтруем
}