Запрос по нескольким пользовательским таксономиям

24 мая 2011 г., 16:44:17
Просмотры: 452
Голосов: 0

Я зарегистрировал 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/

Большое спасибо!

0
Все ответы на вопрос 1
3

Во-первых, чтобы убедиться, что я правильно понимаю основную идею, вы хотите узнать, как избежать создания отдельного шаблона для каждого жанра и года?

Например, я нажимаю на ссылку для просмотра жанра "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".

Понятно ли это?

Теперь, если вы хотите иметь страницу, которая будет показывать определенный жанр в определенном году? Это немного сложнее, но тоже решаемо.

Дайте знать, если это тот ответ, который вы искали.

24 мая 2011 г. 18:15:47
Комментарии

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

ellaj ellaj
25 мая 2011 г. 14:24:34

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

Jonathan Wold Jonathan Wold
26 мая 2011 г. 18:05:32

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

Jonathan Wold Jonathan Wold
26 мая 2011 г. 18:10:06