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

时间:2019-08-26 12:56:12

标签: shopify liquid

我在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 %}

是否可以直接获取链接列表的句柄以迭代其子链接?还是我需要先通过搜索顶级商品来找到该链接?

1 个答案:

答案 0 :(得分:1)

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

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 -%}

但是请注意,这只会循环第二个导航项目中的项目,而忽略其余的项目。