サイドバーは、Discourse サイトの重要なセクションに素早くアクセスできるようにします。ユーザーは各自の好みに合わせてサイドバーをカスタマイズできますが、デフォルトのセットアップを適切に設定しておくことで、特に新しいユーザーや訪問者がナビゲーションを容易に行えるようになります。
このガイドでは、既存のセクションのカスタマイズ方法と、サイドバーに追加のセクションを作成する方法について説明します。また、サイドバーに関連するユーザー設定のデフォルト値を構成するために調整できる設定についても学びます。
各セクションのデフォルトコンテンツのカスタマイズ
コミュニティセクション
サイドバーの最上部(見出しが表示されない)のセクションは「コミュニティ」セクションと呼ばれます。このセクションはすべてのユーザーに表示され、基本的なナビゲーションリンクが含まれています。
このセクションをカスタマイズするには:
- サイドバーで More(もっと見る)をクリック
- 展開されたメニューの下部にある Customize this section(このセクションをカスタマイズ)を選択
以下の変更を行うことができます:
- アイコンをドラッグしてリンクの順序を変更
- 各エントリのアイコン、名前、リンクを編集
- セクションに新しいエントリを追加
デフォルトリンクの理解
一部のデフォルトリンクには特別な動作があります:
- My posts(自分の投稿) - このリンクはデフォルトで「My posts」として表示されます。ただし:
- ユーザーに下書きが1つ以上ある場合、リンクをクリックすると投稿活動ではなく下書きページに移動します。
- ユーザーが
experimental_new_new_groupsサイト設定で選択されたグループに所属している場合、下書きが存在するときはリンクテキストが「My drafts」(自分の下書き)に変更されます。
- My messages(自分のメッセージ) -
personal_message_enabled_groupsにいるユーザーにのみ表示されます。- 個人用受信トレイや、所属するグループの受信トレイの未読インジケーターまたは未読メッセージ数を表示します。
- 未読メッセージがグループ受信トレイにある場合でも、常に個人用受信トレイに移動します。
- Review(レビュー) - スタッフとカテゴリモデレーターにのみ表示されます。
- Admin(管理者) - 管理者とモデレーターにのみ表示されます。
- Invite(招待) - 他のユーザーを招待できるユーザーにのみ表示されます。
翻訳の処理
デフォルトリンクは、ユーザーが選択したインターフェース言語で自動的に表示されます。ただし:
- デフォルトリンクのテキストをカスタマイズすると、すべての言語で上書きされます
- 特定の言語や「My drafts」などの非表示要素のテキストを編集するには、Discourseのテキストをカスタマイズする のガイドに従ってください。
プラグインが追加したリンクの処理
プラグインが追加したリンクは、現在サイドバーエディタではカスタマイズできません。ただし、以下のアプローチを使用して、独自のバージョンに置き換えることができます:
- プラグインが追加した元のリンクを非表示にする
- 希望する動作と外観を持つカスタムリンクを追加
一部のリンクはプラグインの設定で非表示にできます。例えば、sidebar_show_upcoming_events 設定を無効にすることで、近々開催されるイベントのリンクを非表示にできます。
そのような設定がない場合は、カスタムCSSを使用してリンクを非表示にできます。
プラグインリンクを非表示または移動するためのCSSの例
プラグインが追加したリンクを完全に非表示にする
この例は、ActivityPubプラグインが追加したリンクを非表示にします:
.sidebar-section-link-wrapper[data-list-item-name="activity-pub-about"] {
display: none;
}
「More」メニューからのみリンクを非表示にする
リンクを「More」メニューから常時表示に移動する場合に便利です:
.sidebar-more-section-content
.sidebar-section-link-wrapper.dropdown-menu__item[data-list-item-name="anniversaries"] {
display: none;
}
メインセクション(「More」メニュー以外)からのみリンクを非表示にする
リンクを常時表示ではなく「More」メニューに表示したい場合に便利です:
.sidebar-section.sidebar-section-wrapper:not(.sidebar-more-section-content)
.sidebar-section-link-wrapper[data-list-item-name="docs"] {
display: none;
}
サイトへのCSS変更の詳細については、CSS変更に関するガイド を参照してください。
カテゴリセクション
default_navigation_menu_categories サイト設定で、ユーザーのサイドバーにデフォルトで表示されるカテゴリを構成できます。以下の方法でアクセスできます:
- カテゴリセクションの下部にある「デフォルトを構成」をクリック(デフォルトが設定されていない場合にのみ表示されます)
- Admin > All site settings(管理者 > すべてのサイト設定)からこの設定にアクセスし、設定を検索
カテゴリの表示はユーザーの権限を尊重します - 制限付きカテゴリをデフォルトに含めていても、ユーザーはサイドバーにアクセス権があるカテゴリのみを表示します。制限付きカテゴリのみをデフォルトとして構成した場合:
- 訪問者は空のリストを表示します
- ログインユーザーは最も人気のあるカテゴリを表示します(すべてのカテゴリを未選択した場合と同じ)
「Categories」の横にある メニューの「サイドバーカテゴリを編集」オプションは、すべてのユーザーのデフォルトではなく、個人のビューのみをカスタマイズします。
タグセクション
default_navigation_menu_tags サイト設定で、ユーザーのサイドバーにデフォルトで表示されるタグを構成できます。以下の方法でアクセスできます:
- タグセクションの下部にある「デフォルトを構成」をクリック(デフォルトが設定されていない場合にのみ表示されます)
- Admin > All site settings(管理者 > すべてのサイト設定)からこの設定にアクセスし、設定を検索
タグの表示はユーザーの権限を尊重します - 非表示タググループ内のタグは、デフォルトに含まれていてもユーザーのサイドバーに表示されません。制限付きタグのみをデフォルトとして構成した場合:
- すべてのユーザー(訪問者を含む)は最も人気のあるタグを表示します(すべてのタグを未選択した場合と同じ)
「Tags」の横の鉛筆アイコンは、すべてのユーザーのデフォルトではなく、個人のビューのみをカスタマイズします。
チャットセクション
すべてのチャットセクションは、チャットが有効[1] であり、ユーザーがチャットの使用を許可[2] されており、ユーザーが設定でチャットを無効にしていない場合にのみ利用可能です。
チャット検索セクション
チャット検索は chat_search_enabled サイト設定によって制御されます。
スレッドセクション
スレッドセクションは、スレッド機能が有効なチャットに少なくとも1つ所属しているユーザーにのみ表示されます。
チャンネルセクション
チャンネルセクションは、ユーザーが参加しているチャットチャンネルを表示します。ユーザーは、カテゴリの権限に基づいて参加できるチャンネルが少なくとも1つある場合、このセクションを表示します。セクションは、少なくとも1つのチャンネルに参加するまで空のままです。
チャンネル設定を通じてチャンネルメンバーシップを自動化できます:
- チャンネル設定で自動メンバー追加を有効にする
- 条件を満たす新しいユーザーは、サイドバーにチャンネルが自動的に表示されます
DMセクション
ダイレクトメッセージセクションは、1対1およびグループチャットの会話を表示します。このセクションを表示するには、ユーザーは direct_message_enabled_groups のいずれかに所属している必要があります。
このセクションのデフォルト会話を構成することはできません。ただし、空のセクションの代わりに、このセクションを置き換える「新しいDMを開始」ボタンが表示されます。
カスタムセクションの追加
サイドバーにカスタムリンクを含む追加のセクションを作成できます。これらは最初のセクションの下部とカテゴリセクションの上部に表示されます。新しいセクションを追加するには:
- サイドバーの下部にある + ボタンをクリック
- セクションのタイトルを入力
- 追加したい各リンクについて:
- アイコンを選択
- リンクの名前を入力
- 宛先URLを指定
- さらにリンクを追加するには「別のリンクを追加」をクリック
- このセクションをすべてのユーザーに表示するには「全員に表示」をチェック
- セクションを作成するには「保存」をクリック
カスタムセクションの見出しの横にある小さな アイコンは、管理者にのみ表示され、セクションが全員に表示されることを示します。
テキストラベルのカスタマイズ
セクション見出しを含むサイドバーのすべてのテキストラベルをカスタマイズできます:
- Admin > Appearance > Site texts(管理者 > 外観 > サイトテキスト)に移動
- カスタマイズしたいテキストを検索
多くのサイドバーラベルが一般的な単語を使用しているため、特定のテキストキーを見つけるのは難しい場合があります。これを助けるために:
- verbose localization機能 を使用して、正しいテキストキーを識別
ユーザー設定のデフォルトのカスタマイズ
ユーザーは /my/preferences/navigation-menu でサイドバー設定をカスタマイズできます。以下のサイト設定を使用して、これらの設定のデフォルト値を設定できます:
default_sidebar_link_to_filtered_list
この設定は、トピックリスト(「すべてのトピック」とカテゴリおよびタグセクションのリンクを含む)へのサイドバーリンクが以下に導くかを制御します:
- 有効の場合: 未読または新しいトピックのみを表示するフィルタされたリスト
- 無効の場合: すべてのトピックを含むリスト
default_sidebar_show_count_of_new_items
この設定は、サイドバーで新しいアイテムがどのように表示されるかを制御します:
chat_separate_sidebar_mode
有効にすると、チャットまたはフォーラムボタンがナビゲーションメニューに追加されます。これにより、ユーザーはフルスクリーンのチャット体験とフォーラムビューをより効率的に切り替えることができます。フルスクリーンのチャットモードでは、サイドバーにはチャット関連のセクション(My threads(自分のスレッド)、Channels(チャンネル)、DMs(DM)など)のみが表示されます。「常に」に設定すると、フォーラムを閲覧している間、サイドバーのチャット関連セクションは非表示になります。この設定は、フォーラムとチャットの体験を明確に分離するのに役立ちます。
default_sidebar_switch_panel_position というサイト設定があり、トグルボタンをサイドバーの上部または下部に表示するかどうかを決定できます。ユーザーは設定で位置を変更することはできません。
高度なカスタマイズ
テーマコンポーネントを使用して、フォーラムのサイドバーをさらに強化できます。利用可能なオプションを確認するには、Customization > Theme component カテゴリで sidebar タグが付けられたトピックを検索してください(リンク)。ただし、すべてのコンポーネントにMeta上のトピックがあるわけではありません。一部のコンポーネントは他のトピックでもリンクされています。
テーマコンポーネントは、サイドバーに機能を追加できます。いくつかの例を挙げます:
- サイドバーのデフォルトの表示状態を変更:
- デフォルトでサイドバーを閉じる: GitHub - VaperinaDEV/closed-sidebar-by-default
- デフォルトでセクションを折りたたむ: GitHub - Arkshine/discourse-collapsed-sidebar-sections-by-default
- サイドバーのアイコンを変更し、動的にする: Discourse Dynamic Sidebar Icon
- サイドバーセクションの順序を変更:
- 追加のサイドバーセクション:
- 選択されたグループにのみ表示されるカスタムセクション: Discourse Group Sidebar Menus
- グループ受信トレイへの直接リンクを表示するメッセージセクション: Messages section for sidebar
- 訪問者やスタッフなどの異なるユーザーグループに対して特定のセクションを表示または非表示にするコンポーネント:
- サブカテゴリをインデントするコンポーネント:
高度な機能を実装する際は、ユーザーがサイドバーをカスタマイズできることを覚えておいてください。異なるユーザー選択でカスタマイズがどのように表示されるかテストしてください。例えば、ユーザーがサブカテゴリを追加したが、その親カテゴリを追加しなかった場合、ネストされたカテゴリがどのように見えるかです。
関連リソース
- Creating quick access links to Discourse preference pages
- Customize text in Discourse
- Find a translation key with verbose localization




