Consultar múltiples taxonomías personalizadas

24 may 2011, 16:44:17
Vistas: 452
Votos: 0

He registrado 2 taxonomías: festival_year y art_genre. Me gustaría que los usuarios pudieran buscar por un año y género específicos, pero no estoy seguro de cuál es la mejor manera de hacerlo. He probado varios plugins pero ninguno ha funcionado. Pude crear archivos separados, como taxonomy-art_genre-consumable-crafts.php con el siguiente código:

<?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);
?>

lo cual me da la consulta que estoy buscando. Sin embargo, hay 11 géneros (y por supuesto habrá múltiples años).

En lugar de crear plantillas de página separadas, ¿cuál es la mejor manera de lograr esto?

Sitio de prueba: http://www.beta.cornhillartsfestival.com/artists/

¡Muchas gracias!

0
Todas las respuestas a la pregunta 1
3

Primero, para asegurarme de que entiendo la premisa general, ¿quieres saber cómo evitar hacer una plantilla separada para cada género y año?

Por ejemplo, hago clic en un enlace para ver el género "manualidades consumibles". Carga todas las manualidades consumibles.

Ahora, si lo que deseas es simplemente hacer una plantilla de "género", por ejemplo "taxonomy-art_genre.php", entonces lo que necesitas es crear ese archivo, incluir tu consulta y reemplazar:

'terms' => array('manualidades-consumibles'),

Con:

'terms' => get_query_var( 'term' )

Eso cargará el término, como un slug, basado en el término que están viendo. Por lo tanto, al ir a http://www.beta.cornhillartsfestival.com/art_genre/manualidades-consumibles/ se cargaría taxonomy-art_genre.php y el "término" que get_query_var devolvería es "manualidades-consumibles".

¿Tiene sentido?

Ahora, ¿quieres tener una página que te muestre un género particular en un año particular? Eso es un poco diferente, pero también se puede resolver.

Déjame saber si esta es la respuesta que estabas buscando.

24 may 2011 18:15:47
Comentarios

¡Gracias por tu respuesta! Sí, quiero poder mostrar un género particular en un año particular. En la página de 2010 también me gustaría tener una nube de etiquetas o lista de los géneros de arte y cuando se haga clic en una etiqueta, se dirijan a 2010 - artistas del vidrio, etc. ¿Es esto posible? ¡Gracias!

ellaj ellaj
25 may 2011 14:24:34

@ellaj - Para asesorarte sobre la primera parte, necesito entender mejor cómo llegarían a una página que muestre un género particular en un año particular. ¿Podrías orientarme al respecto?

Jonathan Wold Jonathan Wold
26 may 2011 18:05:32

@ellaj - Vale, si lo estoy entendiendo bien, básicamente quieres tener una página de artistas de 2010. En el lateral, podrías tener un encabezado que diga "Otros géneros en 2010", y listarlos debajo - haciendo clic en uno de ellos te llevaría a una página que mostrara, por ejemplo, "Artistas del vidrio en 2010". Ahora, en esa página, ¿también quieres mostrar un enlace a "Artistas del vidrio en 2011", etc.? Déjame saber si estoy captando la idea correctamente.

Jonathan Wold Jonathan Wold
26 may 2011 18:10:06