Как вывести список кастомных записей по двум термам разных таксономий с уникальным описанием?
Здравствуйте, буду благодарен за совет, в WP новичек.
Есть каталог книг, создан кастомный тип записи Books
К этому типу записи прикреплено две таксономии:
- Жанр (janr): fiction, novel, romantic, etc.
- ФорматКниги (format): electronic, hardcopy
Получилось сделать следующие страницы:
site.com/books/bookname/ - страница конкретной книги
site.com/janr/fiction/ - архив список всех книг по определенному жанру (таксономии)
site.com/format/electronic/ - список всех книг определенного формата
Теперь нужно сделать, чтобы на странице любого жанра был дополнительный фильтр по формату книги,
с переходом на отдельную страницу, например:
site.com/janr/fiction/electronic/ - все книги жанра fiction и формата electronic
site.com/janr/fiction/hardcopy/ - все книги жанра fiction и формата hardcopy
При этом, очень хочется, чтобы была возможность прикреплять к таким пересечениям свои уникальные описания, например:
site.com/janr/fiction/electronic/ - "Все книги жанра fiction в электронном формате"
site.com/janr/fiction/electronic/ - "Каталог книг жанра fiction"
На ум приходит только в ручную добавлять дочерние категории к таксономии janr.
Можно ли как-то решить эту проблему более элегантно? Спасибо
https://wp-kama.ru/function/add_rewrite_rule
https://wp-kama.ru/hook/pre_get_posts
Далее, изменяете запрос, добавляя в него значение переменной filter. ОБЯЗАТЕЛЬНО проверяйте, в какой именно запрос вносите изменения.
Как сделать запрос постов произвольного типа, принадлежащих двум таксономиям, см. здесь https://wp-kama.ru/function/wp_query
Затем создаёте копию файла taxonomy.php, переименовываете его в taxonomy-janr.php и в нем стандартным образом оформляете посты.
И наконец - постоянную ссылку создаёте произвольной функцией, которую либо вызываете напрямую (если есть такая возможность и желание), либо прикрепляете к фильтру https://wp-kama.ru/hook/term_link
Большое спасибо, скажите, а как-то можно к таким пересечениям двух таксономий прикрепить уникальное поле с описанием для вывода его на странице конкретного пересечения двух филтров?
Можно всё. Добавляете к элементу "основной" таксономии (в описанном случае - janry) произвольные поля, в названии которых прячете слаги элементов другой таксономии, и вызываете в шаблоне.
$janry->term_id и $format->slug заменяете на нужные значения
Как добавить редактируемое поле на экран таксономии смотрите здесь https://wp-kama.ru/hook/taxonomy-_edit_form_fields