쿼리 문자열을 사용하여 토픽 뷰 필터링하기

:bookmark: 이 가이드는 쿼리 문자열을 사용하여 모든 Discourse 사이트에서 사용자 정의 필터링된 주제 뷰를 얻는 방법을 설명합니다. 모든 사용자는 쿼리 문자열을 사용하여 특정 주제 목록을 확인하고, 고유한 주제 목록으로 가는 사용자 정의 링크를 만들며, 특정 기준을 충족하는 주제를 검색할 수 있습니다.

:person_raising_hand: 필요한 사용자 권한: 모든 사용자

쿼리 문자열은 대부분의 Discourse URL 끝에 추가하여 주제의 사용자 정의 필터링된 뷰를 얻을 수 있는 텍스트입니다. 특정 주제 목록을 확인하거나, 고유한 주제 목록으로 가는 사용자 정의 링크를 만들거나, 특정 기준을 충족하는 주제를 검색하는 데 유용할 수 있습니다.

쿼리 문자열 이해하기

쿼리 문자열은 URL 끝에 추가되며, 물음표(?)로 시작하여 매개 변수와 그 값이 뒤따릅니다. 예를 들어:

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

이 URL에서 ?status=open이 쿼리 문자열입니다.

쿼리 문자열을 사용할 때 보이는 주제 목록은 여전히 사용자 계정으로 액세스할 수 있는 주제로 제한됩니다. 쿼리 문자열을 사용하려면 활성화해야 할 설정은 없습니다.

사용 가능한 쿼리 문자열 매개 변수

모든 Discourse 사이트에서 사용할 수 있는 쿼리 문자열 매개 변수는 다음과 같습니다:

상태(Status)

?status=_를 사용하여 특정 상태를 가진 주제를 표시합니다:

  • open: 열린 주제만
  • closed: 닫힌 주제만
  • archived: 아카이브된 주제만
  • listed: 목록에 표시된(보이는) 주제만
  • unlisted: 목록에 표시되지 않는 주제만
  • deleted: 삭제된 주제만
  • public: 공개(읽기 제한 없음) 카테고리 내의 주제만

검색(Search)

?search=_를 사용하여 검색 결과 전체 페이지를 생성합니다. _를 검색어로 대체합니다.

상태(State)

?state=_를 사용하여 특정 상태를 가진 주제를 표시합니다:

  • muted: 음소거한 주제를 표시
  • normal: 정상으로 설정한 주제를 표시
  • tracking: 추적 중인 주제를 표시
  • watching: 관찰 중인 주제를 표시
  • watching_first_post: 첫 번째 게시물을 관찰하는 카테고리 또는 태그가 있는 주제를 표시

오름차순

?ascending=true를 사용하여 날짜 기준 오름차순으로 주제를 표시합니다. 기본값은 내림차순입니다.

정렬(Order)

?order=_를 사용하여 다양한 기준에 따라 주제를 내림차순으로 표시합니다:

  • likes: 좋아요 수 기준
  • op_likes: 원본 게시물에 대한 좋아요 수 기준
  • views: 조회수 기준
  • posts: 게시물 수(답글) 기준
  • activity: 마지막 활동 날짜 기준(bumped_at 날짜 포함)
  • posters: 참여자 수 기준
  • category: 카테고리 이름 기준 (Z-A)
  • created: 주제 생성 날짜 기준 (가장 최신 주제 우선)

게시물 수 필터

  • ?max_posts=_: 게시물 수가 _ 이하인 주제를 반환합니다
  • ?min_posts=_: 게시물 수가 _ 이상인 주제를 반환합니다

경과 시간 필터

  • ?before=_: _일 전에 생성된 주제를 반환합니다
  • ?bumped_before=_: _일 전에 마지막으로 업데이트(bumped)된 주제를 반환합니다

주제 ID

?topic_ids=_를 사용하여 특정 ID를 가진 주제 목록을 표시합니다. 쉼표로 구분된 주제 ID 문자열을 허용합니다.

카테고리

?category=_를 사용하여 특정 카테고리의 주제 목록을 표시합니다. 쉼표로 구분된 카테고리 ID 숫자 문자열을 허용합니다.

카테고리로 필터링할 때 하위 카테고리의 주제를 제외하려면 ?no_subcategories=true를 사용합니다.

태그

?tags=_를 사용하여 태그별로 주제를 필터링합니다. 예를 들어, https://meta.discourse.org/?tags=how-tohow-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은 게시물 하나만 있는 닫힌 주제를 표시합니다.

고급 검색 페이지 사용

그래픽 사용자 인터페이스를 사용하여 이러한 URL을 구성하고 결과 URL을 복사할 수 있는 고급 검색 페이지를 사용할 수도 있습니다. 검색 컨텍스트 외부에서는 일부 검색 필터가 쿼리 문자열 매개 변수로 작동하지 않을 수 있다는 점에 유의하세요.

추가 리소스

18개의 좋아요

Can’t you use the advanced search page to build these urls with the gui and then just copy the url?

1개의 좋아요

It seems they are the same parameters (we just need to replace : from the search filter to = in the query string), but some search filter doesn’t work when used as a query string parameter outside search.

So I believe the full list is in this documentation. I’d be curious to see in which Discourse file they are referenced to be sure, though.

Edit : there is now a /filter route with way more filter criteria:

3개의 좋아요

If you have the Solved plugin, you can also use:

?solved=yes
?solved=no

3개의 좋아요

I think there are some for Assign too:

I’ll add them in. :+1:

3개의 좋아요

At a guess imagine you could also use this for Tags?

Awesome how to

2개의 좋아요

Yes, you can append ?tags=_ to Discourse URLs use query strings to filter for tags.

For example, https://meta.discourse.org/?tags=how-to would direct you to all of the how-to tags on Meta.

2개의 좋아요

쿼리 문자열을 사용하여 음수(제외) 필터를 사용할 수 있나요? 현재 고급 검색에서는 - 접두사를 사용하여 수행됩니다.

-tags: smth

하지만 쿼리 문자열에서는 이것이 불가능합니다.

새로운 /filter 라우트를 사용하면 분명히 가능합니다.

예를 들어 https://meta.discourse.org/filter?q=-tags%3Aofficial%20%20category%3Aplugin

3개의 좋아요

감사합니다! 여러 상태(OR)로 검색하는 것은 어떻게 하나요? 다양한 방식으로 검색을 시도해 보았지만, 아예 지원되지 않는 것 같습니다. 예를 들어, 열림(open), 닫힘(closed), 아카이브(archived) 상태의 주제들이 있는데, 아카이브만 제외하고 열림 또는 닫힘 상태만 검색하고 싶습니다. 지금까지 시도해 본 방법은 다음과 같습니다.

  • 고급 검색: status:open,closed
  • 고급 검색: status:open status:closed
  • 쿼리 문자열: ?status=open,closed

어떤 것도 작동하지 않습니다.