Usar cadenas de consulta para filtrar vistas de temas

:bookmark: Esta guía explica cómo usar cadenas de consulta para obtener vistas de temas filtradas personalizadas en cualquier sitio de Discourse. Las cadenas de consulta pueden ser utilizadas por todos los usuarios para ver listas específicas de temas, crear enlaces personalizados a listas de temas únicas y buscar temas que cumplan criterios específicos.

:person_raising_hand: Nivel de usuario requerido: Todos los usuarios

Las cadenas de consulta son texto que puedes añadir al final de la mayoría de las URL de Discourse para obtener una vista de temas personalizada y filtrada. Pueden ser útiles para ver listas específicas de temas, crear enlaces personalizados a listas de temas únicas y buscar temas que cumplan criterios específicos.

Entendiendo las cadenas de consulta

Una cadena de consulta se añade al final de una URL, comenzando con un signo de interrogación (?), seguido de parámetros y sus valores. Por ejemplo:

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

En esta URL, ?status=open es la cadena de consulta.
La lista de temas que ves al usar cadenas de consulta seguirá limitada a los temas accesibles por tu cuenta de usuario. No es necesario habilitar ninguna configuración para usar cadenas de consulta.

Parámetros de cadena de consulta disponibles

Aquí están los parámetros de cadena de consulta que puedes usar en todos los sitios de Discourse:

Estado

Usa ?status=_ para mostrar temas con un estado específico:

  • open: Solo temas abiertos
  • closed: Solo temas cerrados
  • archived: Solo temas archivados
  • unlisted: Solo temas no listados
  • deleted: Solo temas eliminados

Búsqueda

Usa ?search=_ para crear una página completa de resultados de búsqueda. Reemplaza _ con tus términos de búsqueda.

Estado

Usa ?state=_ para mostrar temas con un estado específico:

  • muted: Mostrar temas que has silenciado
  • normal: Mostrar temas que has configurado como normales
  • tracking: Mostrar temas que estás siguiendo
  • watching: Mostrar temas que estás observando

Orden ascendente

Usa ?ascending=true para mostrar temas por fecha en orden ascendente. El valor predeterminado es orden descendente.

Orden

Usa ?order=_ para mostrar temas en orden descendente por varios criterios:

  • likes: Por recuento de “me gusta”
  • op_likes: Por “me gusta” en la respuesta original
  • views: Por vistas
  • posts: Por recuento de publicaciones (respuestas)
  • activity: Por fecha de la última actividad (incluye la fecha bumped_at)
  • posters: Por el número de participantes
  • category: Por nombre de categoría (Z-A)
  • created: Por fecha de creación del tema (temas más recientes primero)

Filtros de recuento de publicaciones

  • ?max_posts=_: Devuelve temas con recuentos de publicaciones de _ o menos
  • ?min_posts=_: Devuelve temas con recuentos de publicaciones de _ o más

IDs de temas

Usa ?topic_ids=_ para mostrar una lista de temas con IDs específicos. Acepta una cadena de IDs de temas separada por comas.

Categoría

Usa ?category=_ para mostrar una lista de temas para categorías específicas. Acepta una cadena de números de ID de categoría separados por comas.

Etiquetas

Usa ?tags=_ para filtrar temas por etiquetas. Por ejemplo, https://meta.discourse.org/?tags=how-to mostraría todos los temas con la etiqueta how-to.

Parámetros específicos de plugins

Algunos plugins añaden parámetros de cadena de consulta adicionales:

Plugin Solved

Si tienes instalado el plugin Solved:

  • ?solved=yes: Mostrar temas resueltos
  • ?solved=no: Mostrar temas no resueltos

Plugin Assign

Si tienes instalado el plugin Assign:

  • ?assigned=username: Ver todos los temas asignados a un usuario específico
  • ?assigned=*: Ver todos los temas asignados a todos los usuarios
  • ?assigned=me: Ver todos los temas asignados al usuario actual
  • ?assigned=nobody: Ver todos los temas no asignados

Combinando cadenas de consulta

Puedes combinar múltiples cadenas de consulta usando el símbolo ampersand (&). Al usar múltiples cadenas de consulta, solo el primer parámetro necesita el símbolo ?. Por ejemplo:

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

Esta URL mostraría temas cerrados con solo una publicación.

Usando la página de búsqueda avanzada

También puedes usar la página de búsqueda avanzada para construir estas URL con una interfaz gráfica y luego copiar la URL resultante. Ten en cuenta que algunos filtros de búsqueda pueden no funcionar como parámetros de cadena de consulta fuera del contexto de búsqueda.

Recursos adicionales

18 Me gusta

¿No puedes usar la página de búsqueda avanzada para construir estas URL con la interfaz gráfica y luego simplemente copiar la URL?

1 me gusta

Parece que son los mismos parámetros (solo necesitamos reemplazar : del filtro de búsqueda por = en la cadena de consulta), pero algunos filtros de búsqueda no funcionan cuando se usan como parámetros de cadena de consulta fuera de la búsqueda.

Así que creo que la lista completa está en esta documentación. Sin embargo, tendría curiosidad por ver en qué archivo de Discourse se hace referencia para estar seguro.

Editar: ahora hay una ruta /filter con muchos más criterios de filtro:

3 Me gusta

Si tienes el plugin Solved, también puedes usar:

?solved=yes
?solved=no

3 Me gusta

Creo que también hay algunos para Asignar:

Los añadiré. :+1:

3 Me gusta

Adivina, ¿podrías usar esto también para etiquetas?

Impresionante cómo hacer

2 Me gusta

Sí, puedes añadir ?tags=_ a las URL de Discourse para usar cadenas de consulta que filtren por etiquetas.

Por ejemplo, https://meta.discourse.org/?tags=how-to te dirigirá a todas las etiquetas de how-to en Meta.

2 Me gusta

¿Es posible tener un filtro negativo (excluir) usando una cadena de consulta? Actualmente, con la búsqueda avanzada, esto se hace prefijando con un -

-tags: smth pero esto no es posible con una cadena de consulta.

Definitivamente es posible usando la nueva ruta /filter.

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

3 Me gusta

¡Gracias! ¿Qué hay de la búsqueda con varios estados (OR)? Intenté diferentes formas de buscar, pero parece que no es compatible en absoluto. Por ejemplo, tengo algunos temas que están abiertos, cerrados o archivados, y solo quiero filtrar los archivados, es decir, buscar abiertos O cerrados. Hasta ahora he intentado:

  • Búsqueda avanzada: status:open,closed
  • Búsqueda avanzada: status:open status:closed
  • Cadena de consulta: ?status=open,closed

Ninguno de ellos funciona.