- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Есть вопрос. Нужна сортировка (товаров много), но существует проблема. При переходе на страинцу с например 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 соглашусь, вероятнее так правильнее. Но пока надо сделать работоспособным скрипт...