このガイドでは、Discourse サイトの任意の場所でクエリ文字列を使用してカスタムなフィルタリングされたトピック表示を取得する方法について説明します。クエリ文字列は、すべてのユーザーが特定のトピック一覧を表示したり、独自のトピック一覧へのカスタムリンクを作成したり、特定の条件を満たすトピックを検索したりするために使用できます。
必要なユーザーレベル:すべてのユーザー
クエリ文字列とは、Discourse のほとんどの URL の末尾に追加して、カスタムでフィルタリングされたトピック表示を取得するためのテキストです。特定のトピック一覧の表示、独自のトピック一覧へのカスタムリンクの作成、特定の条件を満たすトピックの検索などに役立ちます。
クエリ文字列の仕組み
クエリ文字列は、URL の末尾に追加され、疑問符(?)で始まり、パラメータとその値が続きます。例:
https://meta.discourse.org/?status=open
この URL では、?status=open がクエリ文字列です。
クエリ文字列を使用して表示されるトピック一覧は、依然としてユーザーアカウントでアクセス可能なトピックに限定されます。クエリ文字列を使用するために設定を有効にする必要はありません。
利用可能なクエリ文字列パラメータ
すべての Discourse サイトで利用可能なクエリ文字列パラメータは以下の通りです:
ステータス
?status=_ を使用して、特定のステータスのトピックを表示します:
open: 開いているトピックのみclosed: 閉じられたトピックのみarchived: アーカイブされたトピックのみlisted: リスト表示(可視)のトピックのみunlisted: リスト表示されていないトピックのみdeleted: 削除されたトピックのみpublic: 公開(読み取り制限なし)カテゴリ内のトピックのみ
検索
?search=_ を使用して、検索結果のフルページを作成します。_ を検索語句に置き換えてください。
状態
?state=_ を使用して、特定の状態のトピックを表示します:
muted: ミュートしたトピックを表示normal: 通常状態に設定したトピックを表示tracking: 追跡中のトピックを表示watching: 監視中のトピックを表示watching_first_post: 監視対象のカテゴリまたはタグを持つトピックで、最初の投稿のみを表示
昇順表示
?ascending=true を使用して、トピックを日付の昇順で表示します。デフォルトは降順です。
順序
?order=_ を使用して、さまざまな基準でトピックを降順に表示します:
likes: いいね数順op_likes: 元投稿のいいね数順views: 閲覧数順posts: 投稿数(返信数)順activity: 最終活動日順(bumped_at日付を含む)posters: 参加者数順category: カテゴリ名順(Z-A)created: トピック作成日順(新しいトピックが先)
投稿数フィルタ
?max_posts=_: 投稿数が_以下のトピックを返す?min_posts=_: 投稿数が_以上のトピックを返す
年齢フィルタ
?before=_:_日以上前に作成されたトピックを返す?bumped_before=_:_日以上前に更新(bump)されたトピックを返す
トピック ID
?topic_ids=_ を使用して、特定の ID を持つトピックの一覧を表示します。カンマ区切りのトピック ID 文字列を受け付けます。
カテゴリ
?category=_ を使用して、特定のカテゴリのトピック一覧を表示します。カンマ区切りのカテゴリ ID 番号の文字列を受け付けます。
?no_subcategories=true を使用して、カテゴリでフィルタリングする際にサブカテゴリのトピックを除外します。
タグ
?tags=_ を使用して、タグでトピックをフィルタリングします。例:https://meta.discourse.org/?tags=how-to は、how-to タグを持つすべてのトピックを表示します。
?match_all_tags=true を ?tags=_ と組み合わせて使用すると、指定されたタグのいずれかではなく、すべてのタグを持つトピックを条件にします。
?no_tags=true を使用して、タグを持たないトピックのみを表示します。
?exclude_tag=_ を使用して、特定のタグを持つトピックを除外します。
いいねフィルタ
?f=liked を使用して、現在のユーザーが投稿にいいねをしたトピックのみを表示します。
プラグイン固有のパラメータ
一部のプラグインは、追加のクエリ文字列パラメータを提供します:
Solved プラグイン
Solved プラグインがインストールされている場合:
?solved=yes: 解決済みトピックを表示?solved=no: 未解決トピックを表示
Assign プラグイン
Assign プラグインがインストールされている場合:
?assigned=username: 特定のユーザーに割り当てられたすべてのトピックを表示?assigned=*: すべてのユーザーに割り当てられたすべてのトピックを表示?assigned=me: 現在のユーザーに割り当てられたすべてのトピックを表示?assigned=nobody: 未割り当てのすべてのトピックを表示
クエリ文字列の組み合わせ
複数のクエリ文字列をアンパサンド(&)記号を使用して組み合わせることができます。複数のクエリ文字列を使用する場合、最初のパラメータのみ ? 記号が必要です。例:
https://meta.discourse.org/?max_posts=1&status=closed
この URL は、投稿数が 1 つの閉じられたトピックを表示します。
高度な検索ページの使用方法
また、高度な検索ページを使用して、グラフィカルユーザーインターフェースでこれらの URL を構築し、結果の URL をコピーすることもできます。ただし、一部の検索フィルタは、検索コンテキスト外ではクエリ文字列パラメータとして機能しない場合があります。