Здравствуйте. Ответьте на несколько вопросов, если есть такая возможность. Спасибо. Хочу реализовать фасетный поиск(сортировка) на своем сайте - в пример беру яндекс маркет и шикимори - но столкнулся с непониманием того, как такой поиск устроен в wordpress и вне его, например, если мы реализуем подобный поиск через фреймворк или на чистом php. 1) Какой смысл использовать WP_query, если все нужные нам записи мы можем получить подставив get параметры в url, которые можем получать из полей фильтра? (наверное, идиотский вопрос, но я крайне хочу услышать на него ответ) Дополнение к вопросу: К примеру, если я на своем сайте вручную пропишу wordpress/?category_name=films, то wp выдаст посты которые относятся к категории 'films', из этого у меня возник вопрос: зачем использовать WP_Query, если я из li могу передавать get параметр и уже в функции строить необходимый url и возвращать его. 2) У нас есть пять полей, которые реализованы с помощью чекбоксов(соответственно изначально они не выбраны), после юзер выбирает один из них, страница перезагружается и выводит записи отсортированные по выбранному полю. на перезагруженной странице мы так же имеем 5 полей, но одно из которых уже выбрано(в состоянии актив), и т.д . Почему чекбокс остается в состоянии актив, а не сбрасывается? Каким образом запоминаются выбранные пользователем поля даже после перезагрузки страницы?
Здравствуйте. Ответьте на несколько вопросов, если есть такая возможность. Спасибо. Хочу реализовать фасетный поиск(сортировка) на своем сайте - в пример беру яндекс маркет и шикимори - но столкнулся с непониманием того, как такой поиск устроен в wordpress и вне его, например, если мы реализуем подобный поиск через фреймворк или на чистом php. 1) Какой смысл использовать WP_query, если все нужные нам записи мы можем получить подставив get параметры в url, которые можем получать из полей фильтра? (наверное, идиотский вопрос, но я крайне хочу услышать на него ответ) Дополнение к вопросу: К примеру, если я на своем сайте вручную пропишу wordpress/?category_name=films, то wp выдаст посты которые относятся к категории 'films', из этого у меня возник вопрос: зачем использовать WP_Query, если я из li могу передавать get параметр и уже в функции строить необходимый url и возвращать его. 2) У нас есть пять полей, которые реализованы с помощью чекбоксов(соответственно изначально они не выбраны), после юзер выбирает один из них, страница перезагружается и выводит записи отсортированные по выбранному полю. на перезагруженной странице мы так же имеем 5 полей, но одно из которых уже выбрано(в состоянии актив), и т.д . Почему чекбокс остается в состоянии актив, а не сбрасывается? Каким образом запоминаются выбранные пользователем поля даже после перезагрузки страницы?
А через что, ты думаешь, это в WordPress реализовано? WP_Query. Но иногда же хочется вывести, к примеру, на главную страницу, на верх, какие-нибудь 5 последних записей, написанный Васей Пупкином в категории "Особенности высших приматов", а вниз - 10 записей Маши Пересветовой в категории "Всё про одноклеточных". Вот тогда соответствующие WP_Query создаются самостоятельно. Видимо потому, что кто-то умный так спрограммировал
То есть, я могу реализовать фильтр сортировки записей с помощью передачи get параметров из li либо input и уже в функции строить необходимый url адрес и возвращать его? Разве это правильный подход? Вопрос был в другом, а именно о том как этого добиться.
Какие ещё url? Если тебе нужно где-то в любом месте запросить посты (типа тех примеров, что я привёл), независимо от того, что там передали в url, пишешь PHP: $query = new WP_Query(/* сюда нужные параметры */); while ($query->have_post()) { /* Чего-то вывести */ } Вопрос не был "как этого добиться" У меня с русским языком пока всё нормально. Как добиться - при выводе чекбокса проверить наличие нужного get-параметра, и поставить checked, если надо. --- Добавлено --- Из li параметры не передаются, могут передаваться через <a> --- Добавлено --- Ну посмотри, как у умных людей реализовано Видишь, я пощёлкал фильтр - и всё в get-параметрах. Так и надо делать
Если нужно заведомо или посредством ajax вывести в определенной части страницы записи, то вопрос сразу отпадает, т.к без wp_query не обойтись. Но я пытаюсь реализовать полноценную страницу фильтра сортировки записей, отсюда и возник вопрос. Мы же можем отлавливать значения, например, из класса li посредством jquery и их передавать в функцию, которая будет с ними работать. К примеру, если нам нужно отсортировать записи по рейтингу и мы не хотим использовать чекбоксы, то делаем так: HTML: <li class="order-by-ranked">По рейтингу</li> То есть, пользователь выбирает определенный чекбокс, чекбокс переходит в состояние active и передает get параметр, мы этот get параметр ловим в функции и на его основе с помощью wp_query выводим записи. Я правильно понимаю? Опять же, что делать, если мы не используем форму, передавать параметры через js или как?
Ну если нужно без перезагрузки - ajax в помощь --- Добавлено --- С помощью javascript можем. Ну послать на ajax, а там уже смотреть - сможет wordpress это без нас обработать, или ему помочь надо.
С помощью javascript можем. Ну послать на ajax, а там уже смотреть - сможет wordpress это без нас обработать, или ему помочь надо.[/QUOTE] Так а как строить url, если мы передаем параметры для wp_query без формы или через ajax?
Ну просто передать в урл соответствующие параметры, какая разница? Другое дело, что если параметры нестандартные, тут надо повозиться порядочно. Я в плагине, который делал, этому много строк посвятил кода. Надо хуки ловить, объяснять wordPress-у, как изменить SQL запрос. query_vars, posts_join, posts_where, posts_orderby А стандартные - ну в принципе, те, что в WP_Query возможно строкой передать, они и сработают.