# 如何将标签按受欢迎程度排序应用到主题列表中？目前似乎只适用于标签页面

**URL:** <https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186>\
**Category:** Feature\
**Created:** [2020年九月6日 18:12 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186 "2020-09-06T18:12:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![HeyRR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heyrr/32/192157_2.png) [@HeyRR](https://meta.discourse.org/u/HeyRR)\
**Post date:** [2020年九月6日 18:12 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/1 "2020-09-06T18:12:19Z")

</div>

**按热度排序标签** 选项在设置中是否仅对生成的标签页生效？

我该如何为每个主题对标签进行排序，并在主题列表中显示？

例如：  
这三个标签：Java 10 次、JavaScript 5 次、C++ 2 次，

我希望实现：如果有人在某个主题中使用了这三个标签，当该主题显示时，这些标签能按热度排序，而不是按照原始发帖人（OP）给出的顺序。这是否可行？

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2020年九月6日 19:20 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/2 "2020-09-06T19:20:07Z")

</div>

这是一个很好的观点；按标签的流行度排序应该在主题本身和主题列表中都被尊重。

我认为这可能应该不受站点设置的影响。@sam，这个改动会有多大？

---

<div class="post-metadata">

**Author:** ![HeyRR](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/heyrr/32/192157_2.png) [@HeyRR](https://meta.discourse.org/u/HeyRR)\
**Post date:** [2020年十月7日 04:57 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/3 "2020-10-07T04:57:12Z")

</div>

您好，

此事有进展吗？我想确认一下，这是一个相对较小的功能添加吗？或者是否有我可以作为短期解决方案进行自定义的内容？

---

<div class="post-metadata">

**Author:** ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)\
**Post date:** [2020年十月7日 16:05 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/4 "2020-10-07T16:05:39Z")

</div>

我想到的一点是按反向流行度排序，这样最不常见或“信息量最大”的标签会排在前面。

但我从未真正实施过，因为这听起来比剑厂还要多得多边缘情况。

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2020年十月8日 02:15 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/5 "2020-10-08T02:15:54Z")

</div>

我觉得话题的标签显示顺序默认应按标签热度排序，@sam 我们应该分配这个任务，除非实现起来非常困难。

（另外，如果话题只有一个标签，这段代码路径完全可以跳过。）

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [2020年十月8日 04:01 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/6 "2020-10-08T04:01:08Z")

</div>

既然我们按标签 ID 进行交易，我认为无论如何都会关联到 tags 表，这应该相当安全，并且不会增加额外的查询。

@kris.kotlarek 你能处理这个吗？

---

<div class="post-metadata">

**Author:** ![kris.kotlarek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kris.kotlarek/32/176919_2.png) [@kris.kotlarek](https://meta.discourse.org/u/kris.kotlarek)\
**Post date:** [2020年十月13日 03:19 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/8 "2020-10-13T03:19:56Z")

</div>

该 PR 已进行了改进，并将包含在下一个 `beta` 版本中 - [FEATURE: respect tags\_sort\_alphabetically setting when display tags by KrisKotlarek · Pull Request #10889 · discourse/discourse · GitHub](https://github.com/discourse/discourse/pull/10889)

以下是按热度排序时 [Meta](https://meta.discourse.org/tag/official) 上的示例：

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/5/5528063b48f735d999c8c3b9e916294b051e2d08.png)

我曾短暂更改过该选项：

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/f/df1a1ab2eeae689fa42be7288292a819dc189458.png)

 ![image](https://global.discourse-cdn.com/meta/original/3X/8/c/8c8c913ae6dabd9d354d880723780d2f4dbc6fe9.png)

当您进入主题时，也可以看到相同的标签顺序：

 ![image](https://global.discourse-cdn.com/meta/original/3X/a/1/a1133ab50000f662fb2a7c6618472ab9254b020b.png)

---

<div class="post-metadata">

**Author:** ![kris.kotlarek](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kris.kotlarek/32/176919_2.png) [@kris.kotlarek](https://meta.discourse.org/u/kris.kotlarek)\
**Post date:** [2020年十月13日 03:35 UTC](https://meta.discourse.org/t/how-to-apply-tag-sorts-by-popularity-to-topic-list-currently-it-seems-only-apply-to-tag-page/163186/9 "2020-10-13T03:35:20Z")

</div>


