Usando strings de consulta para filtrar visualizações de tópicos

:bookmark: Este guia explica como usar strings de consulta para obter visualizações de tópicos filtradas personalizadas em qualquer site Discourse. As strings de consulta podem ser usadas por todos os usuários para visualizar listas específicas de tópicos, criar links personalizados para listas de tópicos exclusivas e pesquisar tópicos que atendam a critérios específicos.

:person_raising_hand: Nível de usuário necessário: Todos os usuários

As strings de consulta são texto que você pode anexar ao final da maioria dos URLs do Discourse para obter uma visualização personalizada e filtrada de tópicos. Elas podem ser úteis para visualizar listas específicas de tópicos, criar links personalizados para listas de tópicos exclusivas e pesquisar tópicos que atendam a critérios específicos.

Entendendo as strings de consulta

Uma string de consulta é adicionada ao final de um URL, começando com um ponto de interrogação (?), seguido por parâmetros e seus valores. Por exemplo:

https://meta.discourse.org/?status=open

Neste URL, ?status=open é a string de consulta.
A lista de tópicos que você vê ao usar strings de consulta ainda será limitada aos tópicos acessíveis por sua conta de usuário. Nenhuma configuração precisa ser habilitada para usar strings de consulta.

Parâmetros de string de consulta disponíveis

Aqui estão os parâmetros de string de consulta que você pode usar em todos os sites Discourse:

Status

Use ?status=_ para exibir tópicos com um status específico:

  • open: Apenas tópicos abertos
  • closed: Apenas tópicos fechados
  • archived: Apenas tópicos arquivados
  • unlisted: Apenas tópicos não listados
  • deleted: Apenas tópicos excluídos

Pesquisa

Use ?search=_ para criar uma página completa de resultados de pesquisa. Substitua _ por seus termos de pesquisa.

Estado

Use ?state=_ para exibir tópicos com um estado específico:

  • muted: Mostrar tópicos que você silenciou
  • normal: Mostrar tópicos que você definiu como normal
  • tracking: Mostrar tópicos que você está rastreando
  • watching: Mostrar tópicos que você está observando

Ordem crescente

Use ?ascending=true para mostrar tópicos por data em ordem crescente. O padrão é ordem decrescente.

Ordem

Use ?order=_ para exibir tópicos em ordem decrescente por vários critérios:

  • likes: Por contagem de curtidas
  • op_likes: Por curtidas na postagem original
  • views: Por visualizações
  • posts: Por contagem de postagens (respostas)
  • activity: Por data da última atividade (inclui a data bumped_at)
  • posters: Pelo número de participantes
  • category: Por nome da categoria (Z-A)
  • created: Por data de criação do tópico (tópicos mais recentes primeiro)

Filtros de contagem de postagens

  • ?max_posts=_: Retorna tópicos com contagens de postagens de _ ou menos
  • ?min_posts=_: Retorna tópicos com contagens de postagens de _ ou mais

IDs de Tópico

Use ?topic_ids=_ para exibir uma lista de tópicos com IDs específicos. Aceita uma string de IDs de tópico delimitada por vírgulas.

Categoria

Use ?category=_ para exibir uma lista de tópicos para categorias específicas. Aceita uma string de números de ID de categoria delimitada por vírgulas.

Tags

Use ?tags=_ para filtrar tópicos por tags. Por exemplo, https://meta.discourse.org/?tags=how-to mostraria todos os tópicos com a tag how-to.

Parâmetros específicos de plugin

Alguns plugins adicionam parâmetros de string de consulta adicionais:

Plugin Solved

Se você tiver o plugin Solved instalado:

  • ?solved=yes: Mostrar tópicos resolvidos
  • ?solved=no: Mostrar tópicos não resolvidos

Plugin Assign

Se você tiver o plugin Assign instalado:

  • ?assigned=username: Ver todos os tópicos atribuídos a um usuário específico
  • ?assigned=*: Ver todos os tópicos atribuídos a todos os usuários
  • ?assigned=me: Ver todos os tópicos atribuídos ao usuário atual
  • ?assigned=nobody: Ver todos os tópicos não atribuídos

Combinando strings de consulta

Você pode combinar várias strings de consulta usando o símbolo de ampersand (&). Ao usar várias strings de consulta, apenas o primeiro parâmetro precisa do símbolo ?. Por exemplo:

https://meta.discourse.org/?max_posts=1&status=closed

Este URL mostraria tópicos fechados com apenas uma postagem.

Usando a página de pesquisa avançada

Você também pode usar a página de pesquisa avançada para construir esses URLs com uma interface gráfica e, em seguida, copiar o URL resultante. Observe que alguns filtros de pesquisa podem não funcionar como parâmetros de string de consulta fora do contexto de pesquisa.

Recursos adicionais

18 curtidas

Você não pode usar a página de pesquisa avançada para construir essas URLs com a GUI e depois apenas copiar a URL?

1 curtida

Parece que são os mesmos parâmetros (precisamos apenas substituir : do filtro de pesquisa por = na string de consulta), mas alguns filtros de pesquisa não funcionam quando usados como parâmetro de string de consulta fora da pesquisa.

Portanto, acredito que a lista completa está nesta documentação. Ficaria curioso para ver em qual arquivo do Discourse eles são referenciados para ter certeza, no entanto.

Editar: agora existe uma rota /filter com muito mais critérios de filtro:

3 curtidas

Se você tiver o plugin Solved, também poderá usar:

?solved=yes
?solved=no

3 curtidas

Eu acho que também existem alguns para Atribuir:

Vou adicioná-los. :+1:

3 curtidas

Adivinhe, imagine que você também poderia usar isso para Tags?

Incrível como fazer

2 curtidas

Sim, você pode anexar ?tags=_ a URLs do Discourse para usar strings de consulta para filtrar por tags.

Por exemplo, https://meta.discourse.org/?tags=how-to direcionaria você para todas as tags de how-to no Meta.

2 curtidas

É possível ter um filtro negativo (exclusão) usando a string de consulta? Atualmente, com a pesquisa avançada, isso é feito prefixando com um -
-tags: smth, mas isso não é possível com a string de consulta.

É definitivamente possível usando a nova rota /filter.

Por exemplo https://meta.discourse.org/filter?q=-tags%3Aofficial%20%20category%3Aplugin

3 curtidas

Obrigado! E quanto à pesquisa com vários status (OU)? Tentei diferentes formas de pesquisa, mas parece que não é suportado. Por exemplo, tenho alguns tópicos que estão abertos, fechados ou arquivados, e quero apenas filtrar os arquivados, ou seja, pesquisar por abertos OU fechados. Até agora tentei\n- Pesquisa avançada: status:aberto,fechado\n- Pesquisa avançada: status:aberto status:fechado\n- String de consulta: ?status=aberto,fechado\n\nNenhum deles funcionou.