Filtrar coleções

Olá :)) Eu queria saber se é possível criar filtros para as coleções, tal como é com os itens de uma coleção, que apareça na página que lista todas as coleções do repositório. Se não for possível, existe algum jeito de fazer algo parecido?

Olá @sarinha, tudo bem?

Então… a resposta curta é não. Por enquanto não temos como criar filtros para coleções.

MAS… se você tiver condições de botar a mão em código, podemos explicar o processo para se registrar uma taxonomia vinculada às coleções, é relativamente simples. Assim poderiam ser criadas categorias para se filtrar elas, pelo menos na lista de coleções do painel administrativo. Na parte pública (no tema) já fica mais complicado porque vai depender do código de cada template.

Queríamos mais que o filtro aparecesse pros usuários do que no painel administrativo, usamos o tema do tainacan.

É infelizmente ainda estamos meio longe de ter algo assim… :confused: Até porquê não é tão comum encontrarmos instalações com muitas coleções, mais com algumas poucas que tenham muitos itens… Vale lembrar que pra se justificar a criação de uma nova coleção precisamos ter uma estrutura de metadados diferentes… tem casos em que uma taxonomia funciona melhor para separar itens em grupos diferentes dentro de uma mesma coleção.

De qualquer jeito, a sugestão que eu daria agora, se você tem muitas coleções e quer ajudar os usuários a ver elas por agrupamentos diferentes, seria montar uma página usando os blocos gutenberg. Talvez com os blocos de “Lista de Coleções do Tainacan” ou “Carrossel de Coleções do Tainacan” você possa manualmente selecionar coleções que você classificaria com “X” e depois mais abaixo, mostrar outra seleção com as que você classificaria como “Y”.

É o caminho mais “fácil” que eu vejo, sem precisar criar um template específico para isso no código.

E se fosse pelo caminho do código? Como seria?

Eu dividiria em três etapas:

  1. Criar uma Taxonomia (do WordPress, não do Tainacan) e associar ela ao Post Type tainacan-collection. A documentação sobre isso tá aqui: register_taxonomy() | Function | WordPress Developer Resources, mas dá pra achar alguns tutoriais na internet mais claros, por exemplo: How to Create WordPress Custom Post Type (CPT) and Taxonomy - Hello World Tutorial, Tips and Tricks • Crunchify. Se quiser ver um exemplo de onde fizemos isso, tem este código deste tema aqui: Tema-IPHAN-INRC/register_category_taxonomy_collection_tainacan.php at master · tainacan/Tema-IPHAN-INRC · GitHub. Na próxima versão do Tainacan, fazer isto já será o suficiente para que a taxonomia apareça no painel admin;
  2. Atribuir os termos desta taxonomia à cada coleção. Para isto você precisa criar um “hook” no formulário da Coleção, que vai mostrar as opções dentro do formulário Coleção do Tainacan. O código do tema que te mostrei acima também já está fazendo isso. O tema Tainacan Interface, por exemplo, faz uso de um desses para inserir aquelas opções de Cor da Coleção. Aqui o código dele onde isto acontece: tainacan-theme/class-tainacanthemecollectioncolor.php at develop · tainacan/tainacan-theme · GitHub. No final das contas, se trata de usar a Action: tainacan-register-admin-hooks;
  3. Criar um novo template que liste as coleções e que possua um seletor dos termos da sua Taxonomia. Em um tema filho, bastaria criar seu próprio arquivo https://github.com/tainacan/tainacan-theme/blob/develop/src/archive-tainacan-collection.php. O seletor precisaria adicionar tax_queries à URL para filtrar a consulta pela sua taxonomia. Mais sobre filtragem por taxonomias aqui: WP_Query | Class | WordPress Developer Resources.

Se for por este caminho e empacar em alguma etapa, pode nos dar um grito aqui!