大家好 ![]()
有人知道是否有选项可以更改特定类别内的下拉菜单名称吗?
我想自定义“all”和“all tags”部分:
但是它不会仅针对特定类别进行更改。
我开始着手解决一个非常粗糙的 CSS 问题,它并不完美……而且我不太愿意分享如此粗糙的东西。![]()
好的,谢谢你的帮助!@merefield @Canapin
哦抱歉,我扫读了!
是的,它们是全局的。
去吧
![]()
我认为这过于复杂,尤其是在子类别未在 HTML 代码中定义为子类别时……我有一个半成品,但我认为应该以正确的方式完成,而 Discourse JS API 可能会对此有所帮助。不幸的是,我对它了解不多。
你好 ![]()
我现在做了一个主题组件来实现这个功能……
它包含两个设置,以便更轻松地使用。
category name
第一项:category slug
第二项:category dropdown title
tag name
第一项:category slug
第二项:tag dropdown title
看起来会是这样。
添加子分类标签标题
希望这对你有帮助 ![]()
编辑:我已修复下拉菜单的宽度,使其与自定义文本宽度正确对齐。UX: fix the dropdown width to keep the custom content width · VaperinaDEV/category-breadcrumb-dropdown-title@faca71c · GitHub
哇,干得漂亮@Don - 你让我惊叹不已
![]()
听好了!
![]()
来自 SCSS 的神秘深处和前端炼金术的复杂性,Don 爵士已崛起。征服函数、掌握循环和解密列表,我们自豪地授予他杰出的前端卓越奖章 ![]()
。
而且你的组件在没有一行 JS 的情况下就能工作……

请告诉我 GPT4bot 帮助你写了那段话 ![]()
100% 是的,恐怕是这样。
这个解决方案令人印象深刻,但你可以这样做 @Don:
api
.modifySelectKit("category-drop")
.replaceContent((component, content) => {
let newContent = [];
content.forEach((item) => {
if (
component.category?.slug === "general" &&
item.id === "all-categories"
) {
item.name = "jojo";
}
newContent.push(item);
});
return newContent;
});
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/select-kit/addon/mixins/plugin-api.js 列出了你可以执行的所有操作:
如果你在使用过程中遇到任何问题,请告诉我。这应该会有更好的文档记录,但如果你有任何疑问,我随时都在。
@Don @j.jaffeux 你们太棒了!! ![]()