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 de forma personalizada 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 únicas de temas 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 agregar al final de la mayoría de las URL de Discourse para obtener una vista personalizada y filtrada de temas. Pueden ser útiles para ver listas específicas de temas, crear enlaces personalizados a listas únicas de temas y buscar temas que cumplan criterios específicos.

Entendiendo las cadenas de consulta

Una cadena de consulta se agrega 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 verás al usar cadenas de consulta seguirá estando 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
  • listed: Solo temas listados (visibles)
  • unlisted: Solo temas no listados
  • deleted: Solo temas eliminados
  • public: Solo temas en categorías públicas (sin restricción de lectura)

Búsqueda

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

Estado de seguimiento

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
  • watching_first_post: Mostrar temas en categorías o con etiquetas por los que estás observando el primer mensaje

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 según varios criterios:

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

Filtros por número de mensajes

  • ?max_posts=_: Devuelve temas con un número de mensajes igual o menor a _
  • ?min_posts=_: Devuelve temas con un número de mensajes igual o mayor a _

Filtros por antigüedad

  • ?before=_: Devuelve temas creados hace más de _ días
  • ?bumped_before=_: Devuelve temas movidos por última vez hace más de _ días

IDs de temas

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

Categoría

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

Usa ?no_subcategories=true para excluir temas de subcategorías al filtrar por categoría.

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.

Usa ?match_all_tags=true combinado con ?tags=_ para requerir que los temas tengan todas las etiquetas especificadas (en lugar de cualquiera de ellas).

Usa ?no_tags=true para mostrar solo temas que no tienen etiquetas.

Usa ?exclude_tag=_ para excluir temas con una etiqueta específica.

Filtro de me gusta

Usa ?f=liked para mostrar solo temas donde el usuario actual ha dado me gusta a un mensaje.

Parámetros específicos de plugins

Algunos plugins agregan parámetros adicionales de cadena de consulta:

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 de 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 un mensaje.

Usando la página de búsqueda avanzada

También puedes usar la página de búsqueda avanzada para construir estas URLs con una interfaz gráfica de usuario 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.