Как правильней реализовать данную функциональность (м
-
Подскажите, как лучше и удобней реализовать следующую функциональность:
Существует журнал, который выходит 1 раз в месяц, например с 1980 года, журнал многоязычный. На wordpress сайте 1 журнал это 1 пост.Каждый журнал имеет следующие таксономии:
1) Страна: russia, usa, germany …
2) Год: 2010, 2009, 2008 …
3) Месяц: Январь, Февраль, Март …Соответствунно необходимо на страницах показывать мульти выборку, например на странице
site.com/jurnal/russia/2010/
показать записи у которых Страна=Россия + Год=2010 и месяцы были в хронологическом порядкена странице
site.com/jurnal/russia/
показать записи у которых Страна=Россия, а годы и месяцы были в хронологическом порядке, например:Год 2010 Январь - ссылка на пост Февраль - ссылка на пост Март - ссылка на пост ... Год 2009 Январь - ссылка на пост Февраль - ссылка на пост Март - ссылка на пост ... ...
Моё решение:
Я создал свой Post Type. Для него создал таксономию Страна, Год, Месяц.
jurnal — это страница (page). Добавил query_vars (3 шт. соотв.) и с помощью add_rewrite_rule направил запросы на эту страницуadd_rewrite_rule('jurnal/([a-z]+)/?$', 'index.php?pagename=jurnal&my_strana=$matches[1]', 'top'); add_rewrite_rule('jurnal/([a-z]+)/([0-9]{4})/?$', 'index.php?pagename=jurnal&my_strana=$matches[1]&my_god=$matches[2]', 'top'); add_rewrite_rule('jurnal/([a-z]+)/([0-9]{4})/([a-z]+)/?$', 'index.php?pagename=jurnal&my_strana=$matches[1]&my_god=$matches[2]&my_mesyac=$matches[3]', 'top');
В файле page-jurnal.php через query_posts делаю запрос _Комбинируя_ таксономии. Но т.к. комбинация таксономия по умолчанию в wordpress не поддерживается, пришлось применять плагин «query-multiple-taxonomies».
А так как мне необходим хронологический порядок года и месяцев, то приходится делать query_posts запрос комбинирую 3 таксономии (Страна, Год, Месяц).
И как мне кажется это не совсем удачный вариант решения данной задачи. Подскажите, возможны ли другие решения?
- Тема «Как правильней реализовать данную функциональность (м» закрыта для новых ответов.