Помогите сделать пользовательскую сортировку постов

Есть сайт с каталогом, на котором в произвольное поле cost_1 прописывается цена.
Нужно сделать возможность пользователю сортировать каталог по убыванию и возрастанию цены.

Нашел форму фильтрации постов (http://dontforget.pro/wordpress/filtr-postov-po-proizvolnyim-polyam-v-wordpress/) – но это немного не то.

Подскажите, пожалуйста, как можно такое сделать?

Это интересная тема. Нужно подумать. Пока нашёл такой метод

http://wppost.ru/postroenie-filtra-zapisej-wordpress-po-proizvolnym-polyam-i-ne-tolko/

Сделал таким образом:

– добавил в functions.php

// Сортировка 
function go_sort() { // наша функция
    $args = array(); // подготовим массив 
    $args['meta_query'] = array('relation' => 'OR'); // отношение между условиями, у нас это "И то И это", можно ИЛИ(OR)
    global $wp_query; // нужно заглобалить текущую выборку посто

    if (($_GET['sort_type']) != '') {
        $args['meta_key'] = 'cost_1';
        $args['orderby'] = 'meta_value_num';
        $args['order'] = $_GET['sort_type'];
    }

    query_posts(array_merge($args,$wp_query->query)); // сшиваем текущие условия выборки стандартного цикла wp с новым массивом переданным из формы и фильтруем
}

и в нужное место добавил форму с подключением функции:

<form class="sort" action="" method="get">
        <select name="sort_type">
            <option value="ASC">Возрастание цены</option>
            <option value="DESC">Убывание цены</option>
         </select>

    <button type="submit">Сортировать</button>
</form>



<?php if ($_GET && !empty($_GET)) {
    go_sort();
} ?>

Вроде все работает

Anonymous
Отправить
Ответ на: