我在 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)
是否可以直接获取链接列表的句柄以便迭代其子链接?或者我需要首先通过搜索顶级项目来找到该链接?
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)
但请注意,这将仅循环第二个导航项目中的项目并忽略其余项目。