之前,我们采用了 @sam 的 建议 来提供按点赞数对分类中的主题进行排序的选项,但自 2.5.0.beta6 版本起,这似乎已无法正常工作。
TypeError: undefined is not an object (evaluating 'Discourse.SiteSettings.top_menu = 'categories|latest|top|new|unread'')
是否有新方法可以启用此功能?
嗯,我在尝试时没有立即遇到相同的错误。不过,您链接的代码现在相当旧了!我认为这应该能涵盖大多数现代模式,并实现相同(或更好)的结果。您能否尝试一下,当然,请使用适合您社区的合理值?
<script type="text/discourse-plugin" version="0.10.0">
const I18n = require("I18n").default;
I18n.translations[I18n.locale].js.filters.topliked = { help: "Top Liked" };
api.addNavigationBarItem({
displayName: "Top Liked",
name: "topliked",
before: "top",
href: "?order=op_likes&status=open",
customFilter: category => {
return category && category.name === "Testing"
},
forceActive: (category, args, router) => {
const queryParams = router.currentRoute.queryParams;
return (
queryParams &&
Object.keys(queryParams).length === 2 &&
queryParams["order"] === "op_likes" &&
queryParams["status"] === "open"
);
}
});
</script>
效果非常好。谢谢!