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>
「保存」ボタンをクリックして変更を保存します。その後、テーマコンポーネントのメインページに戻り、「すべてのテーマに追加」リンクをクリックして、新しいコンポーネントをサイトのすべてのテーマに追加します。








