Запрос по нескольким пользовательским таксономиям
Я зарегистрировал 2 таксономии: festival_year
и art_genre
. Хочу, чтобы пользователи могли искать по конкретному году и жанру, но не уверен, как лучше это реализовать.
Пробовал различные плагины, но ни один не сработал.
Мне удалось создать отдельные файлы, например taxonomy-art_genre-consumable-crafts.php
со следующим кодом:
<?php
$festivalquery = wp_parse_args($query_string);
$festivalquery['tax_query'] = array(
'showposts' => 10,
'orderby' => 'title',
'order' => 'ASC',
'paged' => $paged,
'relation' => 'AND',
array(
'taxonomy' => 'festival_year',
'terms' => array('2010-artists'),
'field' => 'slug',
),
array(
'taxonomy' => 'art_genre',
'terms' => array('consumable-crafts'),
'field' => 'slug',
),
);
query_posts($festivalquery);
?>
что дает мне нужный запрос. Однако у меня есть 11 жанров (и конечно будет несколько лет).
Как можно реализовать это без создания отдельных шаблонов страниц?
Тестовый сайт: http://www.beta.cornhillartsfestival.com/artists/
Большое спасибо!
Во-первых, чтобы убедиться, что я правильно понимаю основную идею, вы хотите узнать, как избежать создания отдельного шаблона для каждого жанра и года?
Например, я нажимаю на ссылку для просмотра жанра "consumable crafts". Загружаются все работы в этом жанре.
Если вы хотите создать всего один шаблон "жанра", например, "taxonomy-art_genre.php", то вам нужно создать этот файл, добавить в него запрос и заменить:
'terms' => array('consumable-crafts'),
На:
'terms' => get_query_var( 'term' )
Это загрузит термин в виде слага, основываясь на термине, который просматривает пользователь. Таким образом, переход по ссылке http://www.beta.cornhillartsfestival.com/art_genre/consumable-crafts/ загрузит taxonomy-art_genre.php, а "term", который вернет get_query_var, будет "consumable-crafts".
Понятно ли это?
Теперь, если вы хотите иметь страницу, которая будет показывать определенный жанр в определенном году? Это немного сложнее, но тоже решаемо.
Дайте знать, если это тот ответ, который вы искали.

Спасибо за ответ! Да, я хочу иметь возможность показывать определенный жанр в определенном году. На странице 2010 года я также хотел бы иметь облако тегов или список жанров искусства, и при клике на тег пользователь попадал бы на страницу, например, "2010 - художники по стеклу" и т.д. Возможно ли это? Спасибо!

@ellaj - Чтобы посоветовать по первой части, мне нужно лучше понять, как пользователи будут попадать на страницу, показывающую определенный жанр в определенном году. Не могли бы вы уточнить это?

@ellaj - Хорошо, если я правильно понял, вы хотите иметь страницу с художниками 2010 года. Сбоку может быть заголовок "Другие жанры в 2010", под которым будет их список - клик по одному из них перенесет на страницу, например, "Художники по стеклу в 2010". Теперь, на этой странице, вы также хотите показывать ссылку на "Художники по стеклу в 2011" и так далее? Дайте знать, правильно ли я представляю картину.
