Utilizzo di query string per filtrare le visualizzazioni degli argomenti

:bookmark: Questa guida spiega come utilizzare le stringhe di query per ottenere viste personalizzate filtrate di argomenti su qualsiasi sito Discourse. Le stringhe di query possono essere utilizzate da tutti gli utenti per visualizzare elenchi specifici di argomenti, creare collegamenti personalizzati a elenchi di argomenti unici e cercare argomenti che soddisfano criteri specifici.

:person_raising_hand: Livello utente richiesto: Tutti gli utenti

Le stringhe di query sono testo che puoi aggiungere alla fine della maggior parte degli URL di Discourse per ottenere una vista personalizzata e filtrata degli argomenti. Possono essere utili per visualizzare elenchi specifici di argomenti, creare collegamenti personalizzati a elenchi di argomenti unici e cercare argomenti che soddisfano criteri specifici.

Comprensione delle stringhe di query

Una stringa di query viene aggiunta alla fine di un URL, iniziando con un punto interrogativo (?), seguito da parametri e i loro valori. Ad esempio:

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

In questo URL, ?status=open è la stringa di query.
L’elenco degli argomenti visualizzato quando si utilizzano le stringhe di query sarà comunque limitato agli argomenti accessibili dal tuo account utente. Nessuna impostazione deve essere abilitata per utilizzare le stringhe di query.

Parametri delle stringhe di query disponibili

Ecco i parametri delle stringhe di query che puoi utilizzare su tutti i siti Discourse:

Stato

Usa ?status=_ per visualizzare argomenti con uno stato specifico:

  • open: Solo argomenti aperti
  • closed: Solo argomenti chiusi
  • archived: Solo argomenti archiviati
  • unlisted: Solo argomenti non elencati
  • deleted: Solo argomenti eliminati

Ricerca

Usa ?search=_ per creare una pagina completa di risultati di ricerca. Sostituisci _ con i tuoi termini di ricerca.

Stato

Usa ?state=_ per visualizzare argomenti con uno stato specifico:

  • muted: Mostra gli argomenti che hai silenziato
  • normal: Mostra gli argomenti che hai impostato su normale
  • tracking: Mostra gli argomenti che stai tracciando
  • watching: Mostra gli argomenti che stai osservando

Ordine crescente

Usa ?ascending=true per mostrare gli argomenti per data in ordine crescente. L’impostazione predefinita è l’ordine decrescente.

Ordine

Usa ?order=_ per visualizzare gli argomenti in ordine decrescente in base a vari criteri:

  • likes: Per numero di like
  • op_likes: Per like nel post originale
  • views: Per visualizzazioni
  • posts: Per numero di post (risposte)
  • activity: Per data dell’ultima attività (include la data bumped_at)
  • posters: Per numero di partecipanti
  • category: Per nome della categoria (dalla Z alla A)
  • created: Per data di creazione dell’argomento (i più recenti prima)

Filtri per numero di post

  • ?max_posts=_: Restituisce argomenti con un numero di post pari o inferiore a _
  • ?min_posts=_: Restituisce argomenti con un numero di post pari o superiore a _

ID argomento

Usa ?topic_ids=_ per visualizzare un elenco di argomenti con ID specifici. Accetta una stringa di ID argomento separati da virgole.

Categoria

Usa ?category=_ per visualizzare un elenco di argomenti per categorie specifiche. Accetta una stringa di numeri ID di categoria separati da virgole.

Tag

Usa ?tags=_ per filtrare gli argomenti per tag. Ad esempio, https://meta.discourse.org/?tags=how-to mostrerebbe tutti gli argomenti con il tag how-to.

Parametri specifici del plugin

Alcuni plugin aggiungono parametri di stringa di query aggiuntivi:

Plugin Solved

Se hai installato il plugin Solved:

  • ?solved=yes: Mostra argomenti risolti
  • ?solved=no: Mostra argomenti non risolti

Plugin Assign

Se hai installato il plugin Assign:

  • ?assigned=username: Visualizza tutti gli argomenti assegnati a un utente specifico
  • ?assigned=*: Visualizza tutti gli argomenti assegnati a tutti gli utenti
  • ?assigned=me: Visualizza tutti gli argomenti assegnati all’utente corrente
  • ?assigned=nobody: Visualizza tutti gli argomenti non assegnati

Combinazione di stringhe di query

Puoi combinare più stringhe di query utilizzando il simbolo e commerciale (&). Quando utilizzi più stringhe di query, solo il primo parametro necessita del simbolo ?. Ad esempio:

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

Questo URL mostrerebbe argomenti chiusi con un solo post.

Utilizzo della pagina di ricerca avanzata

Puoi anche utilizzare la pagina di ricerca avanzata per creare questi URL con un’interfaccia grafica e quindi copiare l’URL risultante. Tieni presente che alcuni filtri di ricerca potrebbero non funzionare come parametri di stringa di query al di fuori del contesto di ricerca.

Risorse aggiuntive

18 Mi Piace

Non puoi usare la pagina di ricerca avanzata per creare questi URL con la GUI e poi semplicemente copiare l’URL?

1 Mi Piace

Sembrano gli stessi parametri (dobbiamo solo sostituire : dal filtro di ricerca con = nella stringa di query), ma alcuni filtri di ricerca non funzionano quando vengono utilizzati come parametri della stringa di query al di fuori della ricerca.

Quindi credo che l’elenco completo sia in questa documentazione. Sarei curioso di vedere in quale file di Discourse sono referenziati per esserne sicuro, però.

Modifica: ora c’è una rotta /filter con molti più criteri di filtro:

3 Mi Piace

Se hai il plugin Solved, puoi anche usare:

?solved=yes
?solved=no

3 Mi Piace

Penso che ce ne siano anche alcuni per Assegna:

Li aggiungerò. :+1:

3 Mi Piace

A naso, immagino che potresti usarlo anche per i tag?

Fantastico come fare

2 Mi Piace

Sì, puoi aggiungere ?tags=_ agli URL di Discourse per utilizzare le stringhe di query per filtrare i tag.

Ad esempio, https://meta.discourse.org/?tags=how-to ti indirizzerà a tutti i tag how-to su Meta.

2 Mi Piace

È possibile avere un filtro negativo (escludere) utilizzando la stringa di query? Attualmente, con la ricerca avanzata, viene fatto prefissando con un -
-tags: smth ma questo non è possibile con la stringa di query.

È assolutamente possibile utilizzando il nuovo percorso /filter.

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

3 Mi Piace

Grazie! Che ne dici della ricerca con più stati (OR)? Ho provato diversi modi di ricerca ma sembra che non sia supportato affatto. Ad esempio, ho alcuni argomenti che sono aperti, chiusi o archiviati, voglio solo filtrare quelli archiviati, ovvero cercare aperti O chiusi. Finora ho provato

  • Ricerca avanzata: status:open,closed
  • Ricerca avanzata: status:open status:closed
  • Stringa di query: ?status=open,closed

Nessuno di questi ha funzionato.