Taxonomía personalizada: los mismos términos, pero para diferentes años

4

Estoy construyendo un directorio de personas en una pensión. Lo que me gustaría hacer es poder asignar los siguientes metadatos a cada persona:

  1. número de habitación
  2. número de espacio de estacionamiento
  3. posiciones de liderazgo

El problema es que cada uno de estos está vinculado a un año específico , es decir:

  • En 2010, John Smith vive en la habitación 2, tiene espacio de estacionamiento 5 y está en el consejo de la casa.
  • En 2011, John Smith vive en la habitación 42, tiene estacionamiento espacio 1 y es el líder de la casa.

Además, necesito poder ver a las personas de acuerdo con estas propiedades , es decir, quiero ver una lista de todos los miembros del "consejo de la casa" o todas las personas que han vivido en la sala 1.

Mi idea inicial fue crear un tipo de publicación personalizado "Residentes", con una taxonomía personalizada ("jerárquica") "Metadatos", que tendría los siguientes términos:

  • 2010
    • habitación
      • 40
      • 41
      • 42
      • etc
    • espacio de estacionamiento
      • 1
      • 2
      • 3
      • etc
    • liderazgo
      • líder de la casa
      • consejo de la casa
      • Monitor de sección
  • 2011
    • habitación
      • (como arriba)
    • espacio de estacionamiento
      • (como arriba)
    • liderazgo
      • (como arriba)

Si bien esto me permitiría filtrar a los residentes según la habitación, el espacio de estacionamiento y el liderazgo en un año específico , me gustaría poder filtrar a los residentes por un número de habitación para todos años, es decir: en lugar de ver a todos los residentes que vivían en la Habitación 2 en 2010 (que es simplemente un caso de filtrado según 2010 > Número de habitación > 2), me gustaría poder ver todos residentes que vivieron en la habitación 2 durante los últimos 10 años.

¿Es solo un caso de encontrar un widget de barra lateral que me permita seleccionar un sub-término específico de varios términos principales en la taxonomía "Metadatos" (por ejemplo, seleccionar "Habitación 1" de "2010", "2011", "2012", etc.) o hay una falacia arquitectónica más grande involucrada aquí?

Por favor, avíseme si no tengo claro nada. Gracias de antemano!

    
pregunta Johannes 10.12.2012 - 11:01

2 respuestas

1

De hecho, podrías lograr todo con categorías, pero ¿es una buena idea? Si todas las categorías principales son 2010, 2011, 2012 y cada una de ellas tiene subcategorías llamadas Room1, Room2, etc., de hecho, tendría una forma fácil de realizar sus búsquedas por año o por habitación. La búsqueda por año sería tan simple como consultar la categoría correspondiente. La búsqueda por habitación implicaría crear primero una matriz o una lista de números de gato haciendo un bucle a través de todas las categorías para encontrar todas las categorías llamadas "Habitación1" o "Habitación2" para todos los años. Con la lista en las manos, la búsqueda sería muy fácil de ejecutar.
Todo esto está bien y podría ser implementado rápidamente. El único temor que tengo para ti es que esta solución sea realmente un hack y no muy "lógico" condisando tu modelo de datos. Primero: ¿las habitaciones son asignadas solo cada año? ¿No se asignan por períodos? Repetir categorías como esta no es una forma clara de representar datos, ya que estaría repitiendo información. Una mejor idea sería crear tipos de publicación personalizados para Salas, Aparcamientos, etc., y asignarlos a los usuarios para cada año, por ejemplo asociando un año y una instalación a través de un campo personalizado. Todos los campos personalizados tienen ID únicos, que utilizan la misma clave principal que las publicaciones, por lo que siempre están claramente separados. Así que perfectamente podría tener campos que asocian un año y la identificación de una instalación con algo como Y2010: F223 (223 es la identificación de la plaza de aparcamiento, etc.). Entonces sería fácil realizar una búsqueda utilizando los valores de campo personalizados (búsqueda de Y2010, Y2011 o F21, etc.).

    
respondido por el barakadam 10.12.2012 - 13:45
-1

Se puede hacer con la ayuda de taxonomía personalizada fácilmente, solo necesita crear tres taxonomías Año, Habitaciones y Espacio de estacionamiento, y luego puede filtrar los resultados por cualquier valor en su query_posts

add_action('init', 'custom_taxonomy');
function custom_taxonomy(){
register_taxonomy("years", 'post_type_slug', array("hierarchical" => true, "label" => "Years", "singular_label" => "Years","rewrite" => true) );
register_taxonomy("rooms", 'post_type_slug', array("hierarchical" => true, "label" => "Rooms", "singular_label" => "Rooms","rewrite" => true) );
register_taxonomy("parking", 'post_type_slug', array("hierarchical" => true, "label" => "Parkings", "singular_label" => "Parking","rewrite" => true) );
}
    
respondido por el Vikram Singh 27.07.2013 - 12:38

Lea otras preguntas en las etiquetas