Lilly
(Lillian )
2026 年 1 月 22 日午前 2:28
1
はじめに
Discourse管理者から、グローバルなカスタムセクションを含むサイドバーメニューセクションの順序変更に関する多くのリクエストを見てきました。現在、CSSでこれを行うのは直感的ではなく、多くの人にとって簡単ではありません。また、管理や変更が難しい場合があるため、管理者UIでこれをずっと簡単にできるテーマコンポーネントを作成しました。
概要
このDiscourseテーマコンポーネントを使用すると、管理者は管理者UIでフォーラムのサイドバーメニューセクションの順序を変更できます。これには、すべてのデフォルトセクションおよびグローバルに表示されるカスタムセクションが含まれます。
このコンポーネントは、デスクトップおよびモバイルのサイドバービュー、およびヘッダードロップダウンモードの両方で機能します(ただし、理想的にはサイドバーモード向けに設計されています)。
インストールと設定
Discourseテーマ使用の初心者ガイド に従って、このテーマコンポーネントをインストールします。
communityセクションは、サイドバーのデフォルトの最上部セクション(Topics ヘッダーを持つメニュー)を指し、More ドロップダウンサブメニューを含みます。communityセクションの上に1〜2つのセクション(デフォルトまたはカスタム)を移動することをお勧めします。
設定内のデフォルトセクションを削除しないでください。そうすると順序が崩れます(いつでも追加し直すか、設定をリセットできます)。
このコンポーネントを設定する最善の方法は、1つのブラウザウィンドウで順序変更リスト設定を持つコンポーネント管理者画面を表示し、別のブラウザウィンドウでテストユーザーとしてフォーラムのサイドバービューを並べて表示することです。リスト内のメニューセクションの順序を変更するたびにページをリロードしてください。
コンポーネントの管理者設定では、カスタムセクションにスラッグ形式の命名規則を使用するようにしてください。そうしないと無視されます(例:「Custom Menu Name」にはcustom-menu-name、「Useful Links」にはuseful-linksなどを使用)。
設定
設定
説明
Sidebar menu order
デフォルトメニューセクションを含むリスト設定(communityはサイドバーのデフォルトの最上部セクションであり、Moreドロップダウンサブメニューを含みます)。横の上下矢印でメニューセクションの順序を変更します。グローバルに表示されるカスタムセクションも追加できます。メニュー名のスラッグを使用してください(例:Test Menuというタイトルのカスタムメニューの場合、設定にtest-menuを追加)。
テーマコンポーネントには最初、デフォルト設定が設定されています。管理者は、順序リストに混ぜたいグローバルカスタムメニューセクションを追加し、デフォルトセクションと一緒に順序を並べ替える必要があります。
デフォルトのコンポーネント設定のスクリーンショット
スクリーンショット
以下のスクリーンショットは、communityセクションと、2つの例示的なカスタムメニューセクション(「Dev Links」(dev-links)と「Toolbox」(toolbox))を示しています。左側はコンポーネント管理者パネルでの表示、右側は一般ユーザーでの表示です。コンポーネント管理者設定でメニューセクションを上下に移動する矢印は、小さな赤いボックスで示されています。
ここでは、デフォルトのcategoriesセクションをcommunityセクションの上に配置するように設定が構成されています(折りたたみモードと展開モード):
以下は、2つのカスタムセクションを使用する例です。1つはデフォルトのcommunityセクションの上に配置されるdev-links、もう1つはデフォルトのtagsセクションの下に配置されるtoolboxです。
また、上記の管理者スクリーンショットにあるinbox-sectionというセクションに注目してください。これは、Messages section for sidebar コンポーネントがサイドバーに挿入するMessagesセクションです(上記のtoolboxカスタムメニューの下)。このコンポーネントを使用してこれを移動することもできることを示しています。
さらに、このテーマコンポーネントはGroup sidebar menus およびIndented subcategories コンポーネントと併用できます(上記のスクリーンショットを参照)。
注意事項
sidebar_menu_order設定に新しいグローバルカスタムセクションを追加した後、フォーラムユーザーはブラウザをリロードするか、サイドバーを折りたたんで展開すると、新しい正しいメニュー順序を確認できます。
このコンポーネントが有効な間に新しいグローバルカスタムメニューセクションを作成すると、サイドバーが再レンダリングされるまで(ページのリフレッシュまたは折りたたみ/展開による)、管理者に一時的に重複したセクションが表示される可能性があります。
ユーザー作成のカスタムメニューセクションは、常にそのユーザーのサイドバーの最下部に表示されますが、それ以外は影響を受けません。
Admin -> All Site Settings -> Chat Separate Sidebar Mode設定がAlwaysに設定されている場合、チャットボタンは通常通り最下部に表示され、コンポーネントはデフォルトのチャットメニューセクション(chat-dms、chat-channels、およびchat-search)を無視します。
私の他のDiscourse関連コンテンツをチェック
「いいね!」 29
それは素晴らしいです。カテゴリ (1) の後にチャット (2) を設定する使い方がとても気に入りました。リリーさんの素晴らしい仕事にとても感謝しています。
「いいね!」 4
これはまだサポートされていますか?インストールを試みたところ、以下のエラーが発生しました。こちらから試したほか、手動の手順を使っても試しました。
Moin
2026 年 2 月 25 日午後 10:55
4
はい、その通りです。「このテーマコンポーネントをインストール」ボタンのリンクは古いですが、上部にあるリンクはまだ正しく、手動でコンポーネントをインストールするためにそれを使用できます。
または、このボタンをお試しください。
「いいね!」 2
nathank
(Nathan Kershaw)
2026 年 2 月 26 日午前 12:00
5
OPのインストールボタンのリンクを修正したので、すべて問題ありません。
「いいね!」 4
nathank
(Nathan Kershaw)
2026 年 3 月 3 日午前 3:26
6
折りたたみ式スマートフォンなどで「デスクトップ」画面が異常に狭い場合に、指定した順序が機能しないというバグに遭遇しました。
このように表示させたいです。
画面サイズが奇妙な場合(幅が640〜820ピクセル程度)、順序が失われます。
「いいね!」 1
Lilly
(Lillian )
2026 年 3 月 3 日午前 10:47
7
ああ、2カラムのサイドバーが戻ってきた。あれはなくなったと思っていたのに?見てみます…
「いいね!」 4
nathank
(Nathan Kershaw)
2026 年 3 月 3 日午後 11:20
8
私が少し鈍かっただけでした!古いコンポーネントを使用しており、それに気づいていませんでした。
ただ一つ気づいた点があります。community と呼ばれていたものが、代わりに the-forum と呼ばれるようになっています。デフォルトを整理するためのプルリクエストは以下の通りです:
main ← nathan-nz:patch-1
closed 12:57AM - 04 Mar 26 UTC
Added `the-forum` as a default as it is now the id of the top section of the sid… ebar. Have left `community` in there for simple backwards compatibility for now.
「いいね!」 1
Moin
2026 年 3 月 4 日午前 12:36
9
私のフォーラムではまだcommunityと呼ばれており、ここMetaでも同様です。
どのように変更したのか不思議に思います。
「いいね!」 2
nathank
(Nathan Kershaw)
2026 年 3 月 4 日午前 12:56
10
それは確かに奇妙ですね!今思い返すと、ある時点でテキストを変更したことを覚えています。しかし、それがどのようにHTMLに入り込んだのかはわかりません!
そのPRを取り下げて、もう少し頭を悩ませる必要があります。私のサイトの「癖」として残るしかないかもしれません!
「いいね!」 1
Lilly
(Lillian )
2026 年 3 月 4 日午後 3:57
11
rails コマンドで名前を元に戻せるはずです。もしセクション名が本当に the-forum であれば、rails コンソールからこれが機能するはずです。
cd /var/discourse
./launcher enter app
rails c
section = SidebarSection.find_by(title: 'the-forum', public: true)
if section
section.update!(title: 'community')
puts "完了: 'community' に名前が変更されました。"
else
puts "セクションが見つかりません。"
end
必ず最初にバックアップを取ってください。
「いいね!」 3
nathank
(Nathan Kershaw)
2026 年 4 月 8 日午前 12:16
12
ついに試してみました。ただし、セクションは見つかりませんでした:
これは単にサイトの癖として残るしかないのかもしれませんね?
「いいね!」 1
Lilly
(Lillian )
2026 年 4 月 21 日午後 11:40
14
注: このコンポーネント向けにいくつかのモバイル対応の修正をプッシュしました。以前は、デスクトップやタブレットでのみ表示されるべきサイドバーセクション間の水平線が、誤ってレンダリングされていました。
「いいね!」 2
私はこの素敵なテーマコンポーネントを、Lilly の同様に素晴らしい Discourse Group Sidebar Menus コンポーネントと併用しています。私のユースケースは、組織内の全員がコミュニティセクションの直後に、自分に関連するクイックリンクをすぐに見られるように、クライアント向けのカスタムメニューを作成することです。
今後の利用者(自分自身も含む)のために注意点として記しておきますが、サイドバーのセクション名は非常に敏感で、正確に一致している必要があります。名前のスペースはダッシュに変換されます。例えば「Doing business」は「doing-business」となります。
これはこれで問題ないのですが、グループのサイドバーセクションを作成した際、グループ名の末尾に誤ってスペースを入れてしまい、「doing-business-」となってしまいました。これは開発者ツールを使ってトラブルシューティングを行うまで気づきませんでした。
これらの機能は私にとって非常に重要です。コア機能として追加され、Discourse サイト全体でより手軽に利用できるよう検討していただければ幸いです。
「いいね!」 2
Lilly
(Lillian )
2026 年 6 月 5 日午後 7:31
16
ありがとう、トビアス。実は設定の説明にセクション名のスラッグを使用するよう記載しており、スクリーンショットの例(「dev-links」=「DEV LINKS」)でも示されています。
もしかしたら、設定の説明以外の場所にも追加したほうがいいかもしれませんね:thinking:
編集:完了しました
Lilly:
コンポーネント管理設定では、カスタムセクションにスラッグ命名形式を使用してください。そうでないと無視されてしまいます(例:「Custom Menu Name」の場合は「custom-menu-name」、「Useful Links」の場合は「useful-links」など)。
「いいね!」 6
このテーマコンポーネントで、サイドバーに同じスラッグを使用して並べ替えることは可能ですか?
私のユースケースは、同じタイトルを表示しますが、無料ユーザーとサブスクライブユーザーの間でアクセスレベルを分けることです。
Lilly
(Lillian )
2026 年 7 月 30 日午前 3:33
18
具体的に何を意味しているのかよく分かりません?これは単にセクションの順序を入れ替えるだけです。スラッグ名は一意である必要があります。異なる名前を付けて、Group Sidebar Menus と併用してください。
もっともな指摘です。ただ、「新しい」サイドバーセクションに非常に似た名前を考え出す必要があります。
同じナビバーセクション内で2つの異なるリンクを使い、適切に区別しようとしています。通常見られる「アクセス権がありません」という表示は、私には少し扱いにくいものです。
Lilly
(Lillian )
2026 年 7 月 31 日午後 1:33
20
このコンポーネントに関連して、これが何を意味するのか全く分かりません