如何控制侧边栏菜单部分的顺序?

您好,各位,

我在 Discourse 论坛的侧边栏菜单时遇到一个问题。部分顺序似乎是固定的——例如,当我创建其他自定义部分时,它们总是出现在“分类”部分的上方

对我的社区来说,重要的是将这些自定义部分放在分类的下方,但我找不到任何方法来更改或控制此顺序。

是否有方法可以管理侧边栏部分的显示位置,还是目前无法自定义这些区块的层级/顺序?

提前感谢您的指导!

2 个赞

您好,您可以使用 CSS 来控制侧边栏部分的顺序。只需添加一个新组件,其中包含类似以下 CSS 代码。转到 管理 -> 主题和组件 -> 组件 并创建一个新的本地组件

并将此代码添加到 CSS 选项卡中,其中 custom-section-name 是自定义菜单部分的 slug 名称:

.sidebar-wrapper { 
  .sidebar-custom-sections {
    display: contents;
  } 
  [data-section-name="community"] {
    order: -4;
  }
  [data-section-name="categories"] {
    order: -3;
  }
  [data-section-name="tags"] {
    order: -2;
  }
  [data-section-name="custom-section-name"] {
    order: -1;
  }
}
CSS 选项卡截图

您需要根据您的具体需求更改上述代码中的数字并添加自定义部分。它看起来会像这样:

4 个赞

谢谢!我刚找到并实现了这个——但它在移动设备上不起作用

这里似乎也曾讨论过这个问题——但这也不起作用

移动设备上的 sidebar-wrapper 类被 sidebar-hamburger-dropdown 取代了,我认为。因此,添加它也应该能在移动设备上正常工作:

.sidebar-wrapper, 
.sidebar-hamburger-dropdown { 
  .sidebar-custom-sections {
    display: contents;
  } 
  [data-section-name="community"] {
    order: -4;
  }
  [data-section-name="categories"] {
    order: -3;
  }
  [data-section-name="tags"] {
    order: -2;
  }
  [data-section-name="custom-section-name"] {
    order: -1;
  }
}
3 个赞

谢谢!我刚试了一下,但它不幸地不起作用。:folded_hands:

对了,还有一处细节:侧边栏在移动设备上似乎没有使用 flex 布局。所以你也需要添加这个。

.sidebar-sections {
  display: flex;
  flex-direction: column;
}
6 个赞

非常感谢!!这行得通!!太棒了!

1 个赞

我的自定义部分的标题名称包含一个空格,例如“Help users.”

我尝试使用 data-section-name=“help users”,但不起作用。

我该如何指定空格?这里需要进行任何转义吗?

请帮忙

编辑:
在 FF 的开发者工具中检查网站后,我发现解决方案是“help-users”。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.