Skip to content

blogs

The global blogs object resolves a store blog by its handle. Blogs do not have a separate publish status; the articles returned through a blog are still limited to articles whose publish time has arrived. The object is available in every storefront template.

Example

{% assign journal = blogs['journal'] %}
{% if journal %}
<a href="{{ journal.url }}">{{ journal.title }}</a>
{% endif %}

Lookup behavior

  • A handle must be non-empty, at most 255 characters, and cannot contain /.
  • One render can resolve at most 50 unique blog handles. Repeated access to the same handle is memoized for that request.
  • Missing, malformed, and over-limit lookups return nil.
  • Returned blog and article URLs retain the active published locale prefix.

See blog for the returned object’s properties and articles for direct article lookup.

Properties

PropertyDescription

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

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