- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Есть вопрос. Нужна сортировка (товаров много), но существует проблема. При переходе на страинцу с например 2, 3, 4... исчезает сортировка.
вот эта функция выводится перед циклом
Сама функция пока так сделал
сортировка работает только на текущей странице
c пагинацией вроде как разобрался, только выходит такая фигня:
что на первой странице при сортировке desc выводится количество постов не указанное (12 в моем случае), а лишь (11 в моем случае) - оставшиеся на последней странице при сортировке asc...
А на последней при сортировке desc - все 12
Значит на первой странице выводится - последняя.
В цитатах кодов нет действий со страницами, нет действий с сортировкой. Ничего не проверяете и не меняется. Понять ничего нельзя. Обычно страницы передаются в query string, а сортировку можно фиксировать в куках или поддерживать там же, в параметрах запроса.
ЗЫ WP такой древний что до сих пор global'ы приходится юзать?
---------- Добавлено 26.06.2015 в 13:11 ----------
Да, еще, смена сортировки должна убивать номер страницы, то есть была 3 и desc, поменяли на asc - страница сбросилась и загрузилась стартовая.
У них же должны быть плагины пагинации или вроде того. Зачем вообще что-то самому писать для этого древнего движка?
я фильтрацию пишу, а не пагинацию...
Все равно не видно как порядок сортировки меняется.
Все равно не видно как порядок сортировки меняется.
потому что, я только начинаю делать. А сортировку начал с убывания/возростания для правильности пагинации. Т.к. там был косяк до этого...
Сортировка и пагинация никак не связаны. При любом порядке у вас одинаковое количество записей выдается. Ну хорошо, как обычно делается, например в адресе
site/foo/bar/?page=2&sort=asc
Это значит код, который генерит адреса, должен взять текущий адрес, проверить на известные ему ключи, сохранить где-то найденные значения в нормальном виде (в переменных) и по полученным значениям + старые значения сгенерить новый адрес.
А если сортировка идет через куки, то все проще, конечно. JS сохраняет выбор юзера в куки и тупо перегружает страницу. Скрипт на сервере получает те же куки и выдает уже в другом порядке.
смысл то да. Но в текущей ситуации это никак не помогло бы. Это в общих чертах...
Ну вроде разобрался) слава яйцам
---------- Добавлено 26.06.2015 в 15:56 ----------
Обновлю проблему и код)
Все сделал не пост,а гет
Проблема вышла текущая
Array ( [meta_query] => Array ( [relation] => AND [0] => Array ( [key] => hards_%_hard [compare] => BETWEEN [value] => Array ( [0] => 0 [1] => 24 ) [type] => numeric ) ) [tax_query] => Array ( [relation] => AND [0] => Array ( [taxonomy] => razdel [field] => id [terms] => Array ( [0] => 55 ) ) ) [post_type] => product [order] => ASC [paged] => 8 [razdel] => kuritelnye-smesi [brand] => Array ( [0] => 55 ) )
выводит массив такой
Если откуда берется раздел [razdel] => kuritelnye-smesi - понятно. То откуда берется 2 раза [brand] => Array ( [0] => 55 ) ) и тут [terms] => Array ( [0] => 55 ) - не понятно
Вернее понятно откуда print_r($wp_query->query); даст
не понятно почему он возвращает [brand] => Array ( [0] => 55 ) <- это
html - для пониманияни у кого идей нету?
Вероятно из-за того, что вы не видите нормальных запросов, не различаете условия и сортировку. Посмотрите на текст запроса, там же наверняка, в ВП, есть какой-то лог или опция вывести куда-то этот текст. Получив текст, загоняете его в mysql через консоль или там phpMyAdmin, или может на wp свой конструктив есть. Загнав получаете результат запроса и видите все как на ладони. Это стандартная процедура проверки всех этих замороченных конструкторов.
---------- Добавлено 28.06.2015 в 21:06 ----------
Для $_GET должен быть объект, не может быть чтоб за столько лет ВП не обзавелся таким. Ну, чтобы не проверять каждый ключ, а мочь сделать например вот так
if($foo=$object_get->foo)
---------- Добавлено 28.06.2015 в 21:15 ----------
В смысле что ваш вариант
$_GET['sort'] != ''
работает только потому, что все проверяемые ключи есть и/или вы отключили вывод предупреждений.
Обычно так делают
if(isset($_GET['sort']))
---------- Добавлено 28.06.2015 в 21:19 ----------
Ключей может не быть. Браузер передает только successful элементы формы. Там целая статья что это такое на w3c.org, а вкратце, например чекбокс без галки не уйдет на сервер, то есть его имени в массиве $_GET вообще не будет.
Вероятно из-за того, что вы не видите нормальных запросов, не различаете условия и сортировку. Посмотрите на текст запроса, там же наверняка, в ВП, есть какой-то лог или опция вывести куда-то этот текст. Получив текст, загоняете его в mysql через консоль или там phpMyAdmin, или может на wp свой конструктив есть. Загнав получаете результат запроса и видите все как на ладони. Это стандартная процедура проверки всех этих замороченных конструкторов.
---------- Добавлено 28.06.2015 в 21:06 ----------
Для $_GET должен быть объект, не может быть чтоб за столько лет ВП не обзавелся таким. Ну, чтобы не проверять каждый ключ, а мочь сделать например вот так
if($foo=$object_get->foo)
---------- Добавлено 28.06.2015 в 21:15 ----------
В смысле что ваш вариант
$_GET['sort'] != ''
работает только потому, что все проверяемые ключи есть и/или вы отключили вывод предупреждений.
Обычно так делают
if(isset($_GET['sort']))
---------- Добавлено 28.06.2015 в 21:19 ----------
Ключей может не быть. Браузер передает только successful элементы формы. Там целая статья что это такое на w3c.org, а вкратце, например чекбокс без галки не уйдет на сервер, то есть его имени в массиве $_GET вообще не будет.
ну насколько мне известно объектами в текущем вопросе и не пахнет...
По поводу isset соглашусь, вероятнее так правильнее. Но пока надо сделать работоспособным скрипт...