# 多个必填标签

**URL:** https://meta.discourse.org/t/multiple-mandatory-tags/238866
**Category:** Support
**Created:** [2022年九月13日 10:39 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866 "2022-09-13T10:39:27Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 10:39 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/1 "2022-09-13T10:39:27Z")

</div>

尊敬的 Discourse：  
我是一名新用户，希望您能帮助我解决以下问题。我们需要一个在线论坛，在发布新主题时，发帖人必须（强制性）从 3 个不同的分类中选择标签或类别。每个分类至少必须选择 1 个选项，也可以选择多个。  
是否可以这样设置 Discourse 来创建新主题？  
然后，我们希望用户能够选择这 3 个分类的各种组合来显示他们感兴趣的主题列表（最好为每个组合提供一个固定的 URL，以便他们保存并返回）。  
是否可以这样设置 Discourse 来查看主题？  
非常感谢，  
Rik

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [2022年九月13日 11:29 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/2 "2022-09-13T11:29:35Z")

</div>

您正在描述标签的相当基本的使用方法。过滤将使用高级搜索来完成。

您可以设置一组标签，并将其用作必填标签的选择。但是……Discourse 对用户几乎没有指导，他们必须知道使用哪个/哪些标签——这是一个大问题。

---

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 12:03 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/3 "2022-09-13T12:03:22Z")

</div>

感谢您的回复！

关于新主题：是否可以为每个标签设置一个选择窗口，其中包含他们可以为该分类选择的标签？所以这三个标签分别有三个独立的选择窗口？

关于可视化：我刚试用了高级搜索，每个高级搜索都有一个唯一的 URL，这很好，但我更希望有一个界面，人们可以在左侧的各个类别中选择标签，有点像[这里](https://giveforgood.world/en/donate/)。这在 Discourse 中可行吗？

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2022年九月13日 14:42 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/4 "2022-09-13T14:42:56Z")

</div>

在查看由标签组合确定的主题列表方面，我最近为 Layout 插件构建了一个小部件，它比访问高级搜索要简单得多。

> [@Render a component within a Widget. (Using select-kit components within plugin code)](https://meta.discourse.org/t/render-a-component-within-a-widget-using-select-kit-components-within-plugin-code/84462/31?u=merefield):
>
> This is now a thing, albeit slightly roughly finished atm: [image] Requires the [Layouts Plugin](https://meta.discourse.org/t/layouts-plugin/55208). Repo of Theme Component here: [GitHub - paviliondev/layouts-tag-intersection-widget: A small widget to allow you to navigate to a topic list based on a combinations of tags](https://github.com/paviliondev/layouts-tag-intersection-widget)

标签的交集有自己的 URL，你可以保存它。

交集路由是 Discourse 核心的原生功能，所以你不需要小部件就能访问它，但它让它更友好。

你可以在 [https://starzen.space](https://starzen.space) 上看到它的演示。

---

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 15:51 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/5 "2022-09-13T15:51:19Z")

</div>

哇，这实际上非常接近我们想要设置的方式。在我们的安装中，我们需要：

1. 能够在单个类别中用“或”组合多个标签，例如您标签组“2. 游戏循环”中的“cargo”和“pve”。
2. 能够用“和”组合不同的标签组，例如，获取“1. 有用”中标记为“guides”的全部主题，并且“2. 游戏循环”中标记为“cargo”的全部主题。

- 组合这两者，例如：获取“1. 有用”中标记为“guides”的全部主题，并且（“2. 游戏循环”中标记为“cargo”或“pve”的全部主题）。

此外，在单击标签后，我们希望右侧的选择窗口保留在屏幕上。

您的插件可以实现这些功能吗？

此致，  
Rik

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2022年九月13日 15:52 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/6 "2022-09-13T15:52:04Z")

</div>

目前仅支持交集

---

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 15:53 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/7 "2022-09-13T15:53:18Z")

</div>

抱歉，那是什么意思…… 编辑：没关系，我刚弄明白，只是“AND”函数，对吗？

---

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 15:57 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/8 "2022-09-13T15:57:55Z")

</div>

我有一个功能请求（除了添加“OR”函数之外）：🙂  
如果可以对交集的结果进行排序，那就太好了，例如，如果您可以对该页面进行排序：  
[https://starzen.space/tags/intersection/3-17-2/bored-gamer](https://starzen.space/tags/intersection/3-17-2/bored-gamer)  
按“最新”、“热门”或其他排序类别

---

<div class="post-metadata">

### Author: ![rik](https://avatars.discourse-cdn.com/v4/letter/r/90db22/32.png) [@rik](https://meta.discourse.org/u/rik)
#### Post date: [2022年九月13日 16:08 UTC](https://meta.discourse.org/t/multiple-mandatory-tags/238866/9 "2022-09-13T16:08:46Z")

</div>

我给你的 Github 账号发送了很多功能请求 🙂 感谢你开发了这个很棒的组件，期待它未来的发展！
