по клику на selecte страница перезагружается идет проверка POST и в зависимости от этого идет запрос в БД и все выводится в разном порядке
if (isset( $_POST['sort'])) {
if ($_POST['sort'] == "popularity") {
$categories = get_the_category();
$cat = $categories[0]->term_id;
$args = array(
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
$args['cat'] = $cat;
query_posts( $args );
}
elseif ($_POST['sort'] == "average") {
global $query_string;
query_posts( $query_string . '&orderby=rand' );
}
elseif ($_POST['sort'] == "newness") {
global $query_string;
query_posts( $query_string . '&order=ASC' );
}
}
дальше форма
<form method="post" action="" id="id_town">
<select id="sel_sort" class="sort_select" name="sort" onchange="this.form.submit()">
<option value="default">Default sorting</option>
<option <?php if ($_POST['sort'] == 'newness') {echo "selected='selected'";} ?> value="newness">Sort by newness</option>
<option <?php if ($_POST['sort'] == 'popularity') {echo "selected='selected'";} ?> value="popularity">Sort by popularity</option>
<option <?php if ($_POST['sort'] == 'average') {echo "selected='selected'";} ?> value="average">Sort by average rating</option>
</select>
<script>$.cookie('sort', $('#sel_sort').val());</script>
<?php echo $_COOKIE["sort"]; ?>
</form>
ну в принципе и все, как и писал проблема с тем что куки не записываются как нужно а с запозданием, для наглядности вот страничка где все это происходит, она пока без js, пытаюсь локально все сделать а потом уже перенести готовое решение
mytandoors.com/category/tandoors