Wordpress. Глобальный фильтр вывода контента сайта по таксономии?
Добрый день.
Возникла задача, решение которой в свободном доступе я не нашёл, хотя функционал встречается довольно часто. Может просто формулировал запросы неверно.
Итак. На сайте добавлена пользовательская иерархическая таксономия "Город" по типу "Страна -> Область -> Город". Необходимо добавить глобальный фильтр выводимых постов на всех страницах, исходя из пользовательского выбора таксономии "Город". При сёрфинге по сайту фильтр не сбрасывается, пока посетитель сам не сменит "Город".
Фильтруются выводимые посты на страницах стандартных и пользовательских таксономий, странице поиска (по возможности). В качестве фильтра может выступать любое значение таксономии, не только конечное, т.е. можно выбрать не только город, но и область, к примеру.
Собственно вопрос: как это реализовать? Как я понимаю, существует два варианта реализации.
1) Использовать готовый плагин. Из мной опробованных вроде бы ни один не подходит, насколько я смог понять. Если есть варианты, напишите, пожалуйста.
2) Написать свой велосипед или скопировать у соседа. Вероятно, можно модифицировать стандартный цикл вордпресс или использовать другие методы вывода постов со своей модификацией.
Ну в данном случае это скорее не велосипед. Вернее, это все равно, что назвать создание сайта на wordpress -- велосипедом. Такой функционал обычно не выкладывают в качестве плагина. Тут вам нужно писать свою реализацию. Делаете фильтр записываете значение в сессию и на всех зависимых от фильтра страницах проверяете эту сессию и по ней выводите соответствующие данные.
Странно, что такой функционал не выкладывают для всех, всё же открытый движок. Я, в общем-то, ещё до моего вопроса смирился, что придётся самому писать фильтр, буду думать.
А есть ли какие эффективные способы реализации фильтра? Чтобы не ставить обычную проверку внутрь цикла на принадлежность таксономии. Возможно есть какие-то хаки для более глубокого изменения самой функции цикла wordpress?