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

SSS*_*SSS 5 liquid 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
Run Code Online (Sandbox Code Playgroud)

我可以这样做来迭代所有菜单项:

    {% for link in linklists.main-menu.links %}
        <p>{{ link.handle }}</p>
        {% for nestedLink in link.links %}
            <p>{{ nestedLink.handle }}</p>
        {% endfor %}
    {% endfor %}
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法仅迭代属于 top_level_2 的子菜单。我尝试过这个但没有成功:

{% for link in linklists.main-menu.top_level_2.links %}
    <p>{{ link.handle }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

并且还尝试了这个:

{% for link in linklists.top_level_2.links %}
    <p>{{ link.handle }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

是否可以直接获取链接列表的句柄以便迭代其子链接?或者我需要首先通过搜索顶级项目来找到该链接?

dri*_*rip 6

linklists.main-menu.links返回对象项的数组。

又名:

[
  {
    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...
]
Run Code Online (Sandbox Code Playgroud)

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

linklists.main-menu.links[1].links你可以这样说和做:

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

{%- endfor -%}
Run Code Online (Sandbox Code Playgroud)

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