Динамическая сортировка постов

[ ←Вернуться к стандартному виду ]

Печатная версия

Сортировка постов в рубрике

Сортировка постов в рубрике

Перед началом цикла добавляем:

<?php
$order = "&orderby=date&order=DESC";
$s2 = ' selected="selected"';
if ($_POST['select'] == 'title') { $order = "&orderby=title&order=ASC"; $s1 = ' selected="selected"'; $s2 = ''; }
if ($_POST['select'] == 'newest') { $order = "&orderby=date&order=DESC"; $s2 = ' selected="selected"'; }
if ($_POST['select'] == 'oldest') { $order = "&orderby=date&order=ASC"; $s3 = ' selected="selected"'; $s2 = ''; }
?>
<form method="post" id="order">
Сортировать по:
<select name="select" onchange='this.form.submit()'>
<option value="title"<?=$s1?>>по заголовку</option>
<option value="newest"<?=$s2?>>по дате (сначала новые)</option>
<option value="oldest"<?=$s3?>>по дате (сначала старые)</option>
</select>
</form>
<?php query_posts($order); ?>

Добавим еще сортировку по дате последнего изменения поста, получаем:

<?php
$order = "&orderby=date&order=DESC";
$s2 = ' selected="selected"';
if ($_POST['select'] == 'title') { $order = "&orderby=title&order=ASC"; $s1 = ' selected="selected"'; $s2 = ''; }
if ($_POST['select'] == 'newest') { $order = "&orderby=date&order=DESC"; $s2 = ' selected="selected"'; }
if ($_POST['select'] == 'oldest') { $order = "&orderby=date&order=ASC"; $s3 = ' selected="selected"'; $s2 = ''; }
if ($_POST['select'] == 'modified') { $order = "&orderby=modified"; $s4 = ' selected="selected"'; $s3 = ''; }
?>

<form method="post" id="order">
Сортировать:
<select name="select" onchange='this.form.submit()' style="width:200px">
<option value="title"<?=$s1?>>по заголовку</option>
<option value="newest"<?=$s2?>>по дате (сначала новые)</option>
<option value="oldest"<?=$s3?>>по дате (сначала старые)</option>
<option value="modified"<?=$s4?>>по дате изменения</option>
</select>
</form>
<?php query_posts($order); ?>

Как видите, добавить или убрать фильтр сортировки довольно легко (про параметры query_posts).

Да, кстати, мопед не мой, взяла идею отсюда http://wordpress.org/support/topic/189864?replies=6#post-827607
UPD оказывается код из Темы Dimox'a «каталог статей»


Комментариев: 40, оставить свой »

Страницы: [2] 1 » Показать все

  1. # 40 michael 17.12.2009 в 19:09

    у меня на странице находятся два выпадающих списка, первый нормально формирует ссылку при выборе (сайт.ру/?сат=Х), а второй просто выдает сайт.ру/Х — естественно ссылка не работает, хотя выводятся одинаково следующим образом:

    wp_dropdown_categories('child_of=64&orderby=name');

    s cript type=text/javascript><!- -

    var dropdown = document.getElementById("cat"); function onCatChange() { if ( dropdown.options[dropdown.selectedIndex].value > 0 ) { location.href = "/?cat="+dropdown.options[dropdown.selectedIndex].value; } } dropdown.onchange = onCatChange; - ->/s c ript>

    как мне сделать, чтобы оба списка работали???

  2. # 39 Karine (1) 06.12.2009 в 22:32

    Подскажите, может есть фильтр или плагин с помощью которого можно вывести 10 наиболее активных пользователей и количество опубликованых каждым постов

  3. # 38 Алексей (1) 02.12.2009 в 09:17

    Это только сортировка, а как сделать фильтр с аналогичными выпадающими списками?

  4. # 37 michael 23.10.2009 в 10:24

    Огромное спасибо, sonika

  5. # 36 sonika 14.10.2009 в 12:47

    michael, погуглите table sort script

  6. # 35 michael 07.10.2009 в 12:13

    а можно както сортировать не выпадающим списком,а при нажатии на слово? т.е. у меня есть таблица, и нужно сделать чтобы при нажатии на определенное слово, происходила сортировка по выбраному критерию — наивысший рейтинг, название поста, название категории, к-во отзывов?

  7. # 34 sonika 06.10.2009 в 16:24

    Виталий, никак, на русском нет. Поищите про query_posts на форумах вордпресс или переведите с помощью он-лайн переводчика.

  8. # 33 Виталий (1) 06.10.2009 в 15:10

    Но там по английски всё, как русский язык включить?

  9. # 32 sonika 06.10.2009 в 12:55

    Виталий, видимо вам нужно это: _http://codex.wordpress.org/Template_Tags/query_posts

  10. # 31 Виталий (2) 05.10.2009 в 21:49

    А скажите, нет ли чего-нибудь для статической сортировки постов?

  11. # 30 sonika (291) 05.10.2009 в 21:30
  12. # 29 Виталий (2) 05.10.2009 в 20:49

    Извините, вы сказали добавлять перед началом цикла? Я просто только только начинаю юзать ВродПресс. Где находиться это начало? В какой файл это вставлять?

  13. # 28 sonika (291) 24.09.2009 в 20:51

    web ,Николай: плагин WP Smart Sort

  14. # 27 Николай 22.09.2009 в 07:50

    Здравствуйте.

    А не подскажете каким образом можно сделать динамическую сортировку постов по дополнительному полю (по возрастанию и убыванию)?

    Третий день над этим бьюсь уже и ничего не получается(

  15. # 26 web 22.08.2009 в 00:54

    А как подобным образом сортировать по рейтингу wp-postratings

  16. # 25 Андрей 14.03.2009 в 03:26

    Простите за невнимательность, забыл равно в тексте поставить.

    Все работает.

  17. # 24 Андрей 14.03.2009 в 02:00

    Соника, подскажите, пожалуйста, а фильтрацию по годам таким образом можно ли сделать?

    Вставил ваш код — сортировка работает. Решил переделать, чтобы в выпадающем списке были года, и при выборе года оставались записи только этого года (то етсь не сортировка, а фидьтрация).

    Вставляю строчки:

    if ($_POST ['select']== '2009') { $order = «&year2009»; $s4 = ' selected="selected"'; $s2 = ''; }

    и

    <option value="2009">За 2009 год

    В раскрывающемся списке появляется «за 2009 год», но при выборе этого пункта остаются так же записи за 2008-й.

    Что не так?

  18. # 23 Зайва Игорь Леонидович (2) 09.03.2009 в 03:00

    По моему оно не работает, ой какой ужас... то ли это сломалось, то ли другое ??? ой, капец... %)

    П.С. Пейджнави работает, но все классы не пашут чёй-то, меняю всё... :( Зря радовался... Если получится заменить ПН на самопал, отпишусь здесь.

  19. # 22 brainsolid (4) 08.03.2009 в 17:19

    Сергей, это пример для конкретного id категории. А как выглядит код в общем виде? Можете на brainsolid@gmail.com прислать?

  20. # 21 Зайва Игорь Леонидович (2) 08.03.2009 в 06:51

    Классная штучка — очень удобно, спасибо... :) Вот такой нюанс: вместо «width:200px;» лучше «width:auto;», а то у меня она очень длинная получилась.

    П.С. У меня вроде пощелкал — пейджнави нормально работает... :) Еще бы «по комментариям» и «по просмотрам» и плагины никакие не нужны. ;)

Страницы: [2] 1 » Показать все

Написать комментарий


Ручная модерация комментов. Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.


Subscribe without commenting

[ ←Вернуться к стандартному виду ]

Печатная версия