Никак не пойму как добавить запрос на сортировку по рейтингу вида query_posts("gdsr_sort=rating");
в динамическую сортировку Dimox`a типа
if ($_POST[‘select’] == ‘title’) { $order = "&orderby=title&order=ASC"; $s1 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘newest’) { $order = "&orderby=cost&order=DESC"; $s2 = ‘ selected="selected"’; }
if ($_POST[‘select’] == ‘oldest’) { $order = "&orderby=cost&order=ASC"; $s3 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘rating_h’) { $order = что сюда писать? ; $s4 = ‘ selected="selected"’; $s3 = ”; }
?>
?>
<form method="post" id="order">
<?php _e(‘Sort by’, ‘article-directory’); ?>:
<select name="select" onchange=’this.form.submit()’>
<option value="title"<?=$s1?>><?php _e(‘Title’, ‘article-directory’); ?></option>
<option value="newest"<?=$s2?>><?php _e(‘Newest’, ‘article-directory’); ?></option>
<option value="oldest"<?=$s3?>><?php _e(‘Oldest’, ‘article-directory’); ?></option>
<option value="rating_h"<?=$s4?>>По рейтингу</option>
</select>
</form>
Прошу помощи!!!
Наверное знающие люди еще не закончили праздновать Новый год!
Все еще жду совета, 🙂
Заранее спасибо за помощь.
вот интересно, оказалось что если вывод делать <?php $posts = query_posts (order); ?> или <?php query_posts($order); ?> , то строка вида
if ($_POST [‘select’]== ‘rating’) { $order = «gdsr_sort=rating&sort_order=asc»; $s5 = ‘ selected="selected"’; $s4 = ”; }
работает, а если вывод сделать
<?php $posts = query_posts ($query_string . $order); ?>
то сортировка по рейтингу от GD star rating работать перестает, а стандартные сортировки по $orderby работают.
Почему из-за $query_string перестают работать команды GD star rating?
Есть предположения?
Чем отличается вывод вида <?php query_posts($order); ?>
от вывода <?php $posts = query_posts($query_string . $order); ?>
Я надеюсь, в коде не такие кавычки, как в посте.
«gdsr_sort=rating&sort_order=asc»
Как минимум, не хватает амперсанда в месте "склейки" $query_string и доп.параметров.
кавычки верхние.
не знаю что вы имели ввиду насчет амперсанта, но код рабочий я его изменяю только.
<?php $posts = query_posts($query_string . $order); ?> эта строка работает, только почему-то мешает сортировке GD star raiting
а можно подробнее, и что насчет моего последнего поста?
В $query_string находится строка, представляющая собой пары параметр=значение, разделенные &. Когды Вы цепляете ему в хвост "gdsr_sort=rating&sort_order=asc", то значение последнего параметра из $query_string слипается с gdsr_sort, образуя бред. Между ними должен быть &.
Вы думаете, я настолько внимательно слежу за Вашим творчеством, что знаю, какой Ваш пост последний?
А куда в строке <?php $posts = query_posts($query_string . $order); ?> ставить амперсант?
и отчего без амперсанта вот эти строки работают
if ($_POST[‘select’] == ‘title’) { $order = "&orderby=title&order=ASC"; $s1 = ‘ selected="selected"’; $s2 = ”; }
if ($_POST[‘select’] == ‘newest’) { $order = "&orderby=cost&order=DESC"; $s2 = ‘ selected="selected"’; }
if ($_POST[‘select’] == ‘oldest’) { $order = "&orderby=cost&order=ASC"; $s3 = ‘ selected="selected"’; $s2 = ”; }
как и остальные стандартные параметры сортировки, а эта строка
if ($_POST [‘select’]== ‘rating’) { $order = «gdsr_sort=rating&sort_order=asc»; $s5 = ‘ selected="selected"’; $s4 = ”; }
уже не работает?
<?php $posts = query_posts($query_string & $order); ?>
так тоже не работает 🙁
Такое работать не может, потому что значит совсем не то, что Вы себе думаете 🙂
query_posts($query_string . "&" . $order);
Учите PHP!
Еще раз: это то, что касается синтаксиса, логика параметров – второй вопрос.
урааа! заработало!!! Большое Вам человеческое спасибо 🙂