大家好,
我通过使用模板、插件出口以及 Discourse 中所有神奇的功能学到了很多东西。是否可以在该类别主题列表的顶部列出所有使用的标签?
大家好,
我通过使用模板、插件出口以及 Discourse 中所有神奇的功能学到了很多东西。是否可以在该类别主题列表的顶部列出所有使用的标签?
我可以大致通过以下方式实现此目的: Discourse Popular Tag Sidebar
我将看看我能学到什么。
您可以轻松获取 top_tags:
导入 ajax – import { ajax } from \"discourse/lib/ajax\";,然后 →
ajax(`/c/general.json`).then((data) => {
console.log(data.topic_list.top_tags);
});
这是 general 类别;您可以将其替换为变量或主题组件设置。
如果您想显示所有未按类别过滤的标签,请使用 /tags.json。
要使用主题列表上方的出口,出口名称为 /javascripts/discourse/connectors/above-main-container/{your-file-name}.hbs。我建议您查看其他主题组件中的实现方式,并阅读 https://meta.discourse.org/t/using-plugin-outlet-connectors-from-a-theme-or-plugin/32727。
更困难的是获取所有标签。您可以查看 /c/general.json 的数据结构,它看起来像这样。不要执行 data.topic_list.top_tags,而是可以迭代 data.topic_list.topics 中的每个主题,并将每个主题的 tags 添加到一个数组中。 data.topic_list.topics.map((topic) => topic.tags);。
希望这有帮助! ![]()