Taxonomia personalizada: mesmos termos, mas para anos diferentes

4

Estou construindo um diretório de pessoas em uma pensão. O que eu gostaria de fazer é atribuir os seguintes metadados a cada pessoa:

  1. Número do quarto
  2. Número do espaço de estacionamento
  3. posições de liderança

O problema é que cada um deles está vinculado a um ano específico , ou seja:

  • Em 2010, John Smith mora no quarto 2, tem vaga de estacionamento 5 e está ligado o conselho da casa.
  • Em 2011, John Smith mora no quarto 42, tem estacionamento espaço 1 e é o líder da casa.

Além disso, preciso poder ver as pessoas de acordo com essas propriedades , ou seja, quero ver uma lista de todos os membros do "conselho da cidade" ou todas as pessoas que moraram na Sala 1.

Minha ideia inicial era criar um tipo de postagem personalizado "Residentes", com uma taxonomia personalizada (hierárquica) "Metadados", que teria os seguintes termos:

  • 2010
    • Sala
      • 40
      • 41
      • 42
      • etc
    • espaço de estacionamento
      • 1
      • 2
      • 3
      • etc
    • Liderança
      • Líder da casa
      • Conselho da Câmara
      • monitor de seção
  • 2011
    • Sala
      • (como acima)
    • espaço de estacionamento
      • (como acima)
    • Liderança
      • (como acima)

Embora isso me permita filtrar os residentes de acordo com a divisão, o espaço de estacionamento e a liderança em um ano específico , gostaria de poder filtrar residentes por um número de quarto para anos, ou seja: em vez de visualizar todos os residentes que moravam na Sala 2 em 2010 (que é apenas um caso de filtragem de acordo com 2010 > Número da sala > 2), gostaria de poder ver todos residentes que viviam no quarto 2 nos últimos 10 anos.

Este é apenas um caso de encontrar um widget da barra lateral que me permita selecionar um sub-termo específico de vários termos pai na taxonomia "Metadados" (por exemplo, selecionando "Room 1" de "2010", "2011", "2012", etc.) ou há uma maior falácia arquitetônica envolvida aqui?

Por favor, deixe-me saber se não tenho certeza de nada. Obrigado antecipadamente!

    
por Johannes 10.12.2012 / 11:01

2 respostas

1

Você pode, de fato, conseguir tudo com categorias, mas é uma boa ideia? Se todas as categorias principais forem 2010, 2011, 2012 e cada uma delas tiver subcategorias chamadas Room1, Room2 etc., você terá uma maneira fácil de fazer suas pesquisas por ano ou por sala. A pesquisa por ano seria tão simples quanto consultar a categoria correspondente. A pesquisa por sala implicaria primeiro criar um array ou uma lista de números de cat, fazendo um loop através de todas as categorias para encontrar todas as categorias nomeadas "Room1" ou "Room2" para todos os anos. Com a lista em mãos, a busca seria muito fácil de executar.
Tudo isso está bem e poderia ser implementado rapidamente. O único medo que tenho para você é que essa solução seja realmente um truque e não muito "lógica" condizente com seu modelo de dados. Primeiro: os quartos são atribuídos apenas a cada ano? Eles não são atribuídos por períodos? A repetição de categorias como essa não é uma maneira limpa de representar dados porque você estaria repetindo informações. Uma ideia melhor seria criar tipos de postagem personalizados para Salas, Estacionamentos, etc. e atribuí-los aos usuários para cada ano, por exemplo, associando um ano e uma instalação por meio de um campo personalizado. Todos os campos personalizados têm IDs exclusivos, usando a mesma chave primária das postagens, para que eles sejam sempre claramente separados. Então você poderia perfeitamente ter campos associando um ano e o ID de uma instalação com algo como Y2010: F223 (223 sendo o ID do lugar de estacionamento, etc.). Então seria fácil fazer uma pesquisa usando os valores do campo personalizado (procurando por Y2010, Y2011 ou F21, etc.).

    
por barakadam 10.12.2012 / 13:45
-1

Isso pode ser feito com a ajuda de taxonomia personalizada facilmente você só precisa criar criar três taxonomias ano, quartos e vaga de estacionamento e então você pode filtrar os resultados por qualquer valor em seu 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) );
}
    
por Vikram Singh 27.07.2013 / 12:38