Discourse 现在提供了一个 official 主题组件来支持此用例:
原文
我不确定将 Discourse 主徽标链接到外部网站是否对大多数网站来说是个好主意,但有些情况,当用户单击 Discourse 主徽标时,将其引导至外部网站是合理的。如果你想这样做,以下是方法。
创建一个新的主题组件
注意,本指南的这一部分将很快提取到一个专门的主题中。
单击“管理”/“自定义”/“主题”页面侧边栏中的“组件”链接。然后,从侧边栏底部单击“安装”按钮:
在打开的模态窗口中,单击“创建新”链接:
为你的主题组件命名,并确保选择了“组件”类型。然后单击“创建”按钮:
然后你将被带到主题组件的主页。
将代码添加到主题组件
需要将覆盖主徽标默认 URL 的代码添加到主题组件的 HEAD 部分。要访问组件的编辑器,请单击“编辑 CSS/HTML”按钮:
在打开的编辑器中,单击“Head”链接:
根据各种条件,将以下代码片段添加到编辑器的 HEAD 部分,以修改主徽标指向的 URL。请注意,你需要将代码中的 https://example.com 替换为你外部网站主页的完整 URL:
- 更改链接到静态 URL:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => "https://example.com")
</script>
- 根据当前用户返回动态 URL:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
const currentUser = api.getCurrentUser();
return `https://example.com/${currentUser.username}`;
})
</script>
- 根据主题组件设置返回 URL:
<script type="text/discourse-plugin" version="1.3.0">
api.registerValueTransformer("home-logo-href", () => {
return settings.example_logo_url_setting;
})
</script>
单击“保存”按钮以保存你的更改。完成后返回主题组件的主页,然后单击“全部添加到主题”链接,将新组件添加到你网站的所有主题中:








