在某些页面上显示 link_list 菜单

display link_list menu on certain pages

我想让某个菜单显示在我的产品页面的 header 中,而不是 site-wide。

我的 theme.liquid 文件在 <body> 中有 {% section 'header' %} 标签,所以我的 header 在所有页面上都显示正常。

sections/header.liquid 具有以下架构:

{% schema %}
{
  "name": "Header",
  "settings": [
    {
      "type": "link_list",
      "id": "menu",
      "default": "main-menu",
      "label": "Heading Navigation Menu"
    }
  ]
}
{% endschema %}

我认为当您进入 Shopify 上的主题编辑器时,您将能够单独 select 在我的 'Heading Navigation Menu' 部分每页的菜单部分中显示的内容(首页, Collections、博客等),但此时它是静态的。理想情况下,我可以进入那里 select 我在某些页面的导航设置中创建的不同菜单。

我最终用 switch 语句和 template 对象处理了这个问题。

在我 sections/header.liquid 的导航栏中,我创建了 switch 语句:

<nav>
  <ul>
  {% case template.name %}
  {% when 'article' %}
    <li>
      Show that
    </li>
  {% when 'cart' or 'blog' or 'product' %}
    <li>
      Show that and this
    </li>
  {% else %}
    <li>
      Show this
    </li>
  {% endcase %}
  </ul>
</nav>

您可以将您喜欢的任何元素放入各个案例中,它会检查您的模板名称是什么以显示该元素。

两者的 Shopify 文档:

不确定这是否是最有效的方法,但希望这对任何试图完成类似事情的人有所帮助。