Utilizzare le query string per filtrare le visualizzazioni degli argomenti

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

:person_raising_hand: Livello utente richiesto: Tutti gli utenti

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

Comprendere le query string

Una query string viene aggiunta alla fine di un URL, iniziando con un punto di domanda (?), seguita da parametri e dai loro valori. Ad esempio:

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

In questo URL, ?status=open è la query string.

L’elenco degli argomenti visualizzato quando si utilizzano le query string sarà comunque limitato agli argomenti accessibili dal tuo account utente. Non è necessario abilitare alcuna impostazione per utilizzare le query string.

Parametri delle query string disponibili

Di seguito sono riportati i parametri delle query string utilizzabili su tutti i siti Discourse:

Stato

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

  • open: Solo argomenti aperti
  • closed: Solo argomenti chiusi
  • archived: Solo argomenti archiviati
  • listed: Solo argomenti elencati (visibili)
  • unlisted: Solo argomenti non elencati
  • deleted: Solo argomenti eliminati
  • public: Solo argomenti in categorie pubbliche (non con restrizioni di lettura)

Ricerca

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

Stato (utente)

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

  • muted: Mostra gli argomenti che hai silenziato
  • normal: Mostra gli argomenti impostati come normali
  • tracking: Mostra gli argomenti che stai monitorando
  • watching: Mostra gli argomenti che stai osservando
  • watching_first_post: Mostra gli argomenti nelle categorie o con i tag per cui stai osservando il primo post

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 sul 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 (Z-A)
  • created: Per data di creazione dell’argomento (gli argomenti più recenti per primi)

Filtri per numero di post

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

Filtri per età

  • ?before=_: Restituisce gli argomenti creati più di _ giorni fa
  • ?bumped_before=_: Restituisce gli argomenti spostati in cima più di _ giorni fa

ID argomento

Usa ?topic_ids=_ per visualizzare un elenco di argomenti con ID specifici. Accetta una stringa separata da virgole contenente gli ID degli argomenti.

Categoria

Usa ?category=_ per visualizzare un elenco di argomenti per categorie specifiche. Accetta una stringa separata da virgole contenente i numeri ID delle categorie.

Usa ?no_subcategories=true per escludere gli argomenti delle sottocategorie quando si filtra per categoria.

Tag

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

Usa ?match_all_tags=true combinato con ?tags=_ per richiedere che gli argomenti abbiano tutti i tag specificati (invece di uno qualsiasi di essi).

Usa ?no_tags=true per mostrare solo gli argomenti che non hanno tag.

Usa ?exclude_tag=_ per escludere gli argomenti con un tag specifico.

Filtro “Mi piace”

Usa ?f=liked per mostrare solo gli argomenti in cui l’utente corrente ha messo “mi piace” a un post.

Parametri specifici dei plugin

Alcuni plugin aggiungono parametri aggiuntivi per le query string:

Plugin Solved

Se hai installato il plugin Solved:

  • ?solved=yes: Mostra gli argomenti risolti
  • ?solved=no: Mostra gli 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

Combinare le query string

Puoi combinare più query string utilizzando il simbolo della chiocciola (&). Quando si utilizzano più query string, solo il primo parametro richiede il simbolo ?. Ad esempio:

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

Questo URL mostrerà gli argomenti chiusi con un solo post.

Utilizzo della pagina di ricerca avanzata

Puoi anche utilizzare la pagina di ricerca avanzata per costruire questi URL tramite un’interfaccia grafica e successivamente copiare l’URL risultante. Tieni presente che alcuni filtri di ricerca potrebbero non funzionare come parametri delle query string al di fuori del contesto della 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.