Skip to content

linklists

The global linklists object resolves a store navigation menu by handle. Menus do not have a separate publish status. The linked resources used by menu items are loaded in batches for the current storefront request and remain subject to each resource’s own storefront-visibility rules.

Example

{% assign menu = linklists['main-menu'] %}
{% if menu %}
<nav aria-label="Main menu">
{% for link in menu.links %}
<a href="{{ link.url }}"{% if link.active %} aria-current="page"{% endif %}>
{{ link.title }}
</a>
{% endfor %}
</nav>
{% endif %}

Lookup behavior

  • Handles are normalized to lowercase and can be at most 255 characters.
  • One render can resolve at most 20 unique menu handles. Repeated access to the same handle reuses the request-scoped result.
  • Missing, malformed, and over-limit lookups return nil.
  • Menu URLs and active-state comparisons use the active locale-aware path.

See linklist and link for the returned objects.

Properties

PropertyDescription

This object has no static properties; menu handles are dynamic keys.

Property list is generated from the storefront engine (LinklistsDrop), so it always matches what your theme can use. Use {{ linklists | json }} only as a curated debug snapshot; it can omit lazy or otherwise public properties.