直接访问 shopify 中的嵌套链接列表

Directly access nested linklist in shopify

我在 shopify 中设置了这样的菜单导航:

- main_menu
    - top_level_1
    - top_level_2
        - top_level_2_sub_menu_1
        - top_level_2_sub_menu_2
        - top_level_2_sub_menu_3

我可以这样做来遍历所有菜单项:

    {% for link in linklists.main-menu.links %}
        <p>{{ link.handle }}</p>
        {% for nestedLink in link.links %}
            <p>{{ nestedLink.handle }}</p>
        {% endfor %}
    {% endfor %}

但是我似乎无法仅通过属于 top_level_2 的子菜单进行迭代。我已经尝试过但没有成功:

{% for link in linklists.main-menu.top_level_2.links %}
    <p>{{ link.handle }}</p>
{% endfor %}

也试过这个:

{% for link in linklists.top_level_2.links %}
    <p>{{ link.handle }}</p>
{% endfor %}

是否可以直接获取 linklist 的句柄以遍历其子 links?或者我需要先通过搜索顶级项目找到 link 吗?

linklists.main-menu.links returns 一组对象项。

A.k.a:

[
  {
    active: false
    child_active: false
    current: false
    child_current: false
    levels: 1
    links: [...]
    object: null
    title: "Some title"
    type: "http_link"
    url: "#:
  },
  {
    active: false
    child_active: false
    current: false
    child_current: false
    levels: 1
    links: [...]
    object: null
    title: "Some title"
    type: "http_link"
    url: "#:
  },
  {
    active: false
    child_active: false
    current: false
    child_current: false
    levels: 1
    links: [...]
    object: null
    title: "Some title"
    type: "http_link"
    url: "#:
  },
  etc...
]

所以你不能说 linklists.main-menu.top_level_2 因为没有这样的对象。

你可以说 linklists.main-menu.links[1].links 然后做类似这样的事情:

{%- for link in linklists.main-menu.links[1].links -%}

{%- endfor -%}

但请注意,这将仅循环第二个导航项中的项并忽略其余项。