Skip to main content

v0.6.0-alpha.1

  • Added — Numeric indexing on Collections: {{ posts[0].title }}, {{ featured[2].author.email }}.
  • Added — Arbitrary expressions inside bracket access: {{ posts[loop.index] }}, {{ items[i + 1].title }}, {{ map[user.role] }}.
  • Added — Editor placeholders for {{ post.* }} when no post is in context (FSE templates).
  • Added — Conditional HTML attributes via null: disabled="{{ cond ? true : null }}" omits the attribute.
  • Added — WooCommerce product fields expanded (attributes, variations, shipping, tax, sale dates, catalog visibility, etc.); product_variation exposes the same fields as product.

Expressions

  • Added — Numeric indexing on Collections: {{ posts[0].title }}, {{ featured[2].author.email }}.
  • Added — Arbitrary expressions inside bracket access: {{ posts[loop.index] }}, {{ items[i + 1].title }}, {{ map[user.role] }}.
  • Added — Conditional HTML attributes via null: disabled="{{ cond ? true : null }}" omits the attribute.
  • Added — Chainable excerpt builder: {{ post.excerpt.length(50).end('…').read_more('More') }}.
  • Added — Chainable comments thread: {{ post.comments.order('DESC') }} (email and IP stripped).
  • Added — Comparisons on post.type, post.category, etc.: {% if post.type == 'page' %}.
  • Addedimage.ID, image.post_title, image.post_parent, etc. resolve through the underlying post.
  • Addedget_taxonomy(slug) function for taxonomy labels: {{ get_taxonomy('category').label }}.
  • Improved — Filter + comparison patterns ({{ x|filter == y }}) now parse as expected.
  • Improvedpost.parent, post.next, post.prev return false when absent; image.width, image.height return null when metadata is missing.
  • Fixed — Adjacent {{ }} placeholders ({{ a }}{{ b }}) silently returning only the first value.
  • Fixed{{ post.* }} outside a loop now resolves to the current page (was the first post in the main loop).
  • Fixed{{ site.option('date_format') }} returning empty due to a callback signature mismatch.
  • Fixed{{ image.status }} and {{ attachment.status }} throwing a fatal error.
  • Removed — User accessor methods login, first_name, last_name, nickname, description, logged_in (use user.meta('first_name') and user.is_current); post.status (use post.post_status).

Loops & Variables

  • Fixed — Loop on an expression variable returning null or empty no longer renders a phantom iteration.
  • Fixed — Nested loops over the same post Collection no longer trigger PHP warnings or render the wrong item.
  • Fixed — Loop alias resolution when iterating a Variable Block Collection ({% for item in featured %}).
  • Fixed — Variable Block storing an object ({% set x = post %}) — chained access {{ x.title }} now works.

Editor

  • Added — Editor placeholders for {{ post.* }} when no post is in context (FSE templates).
  • Fixed — Block inspector missing Attributes and Styles panels for descendants of an empty loop.

WooCommerce

  • Added — Product fields expanded (attributes, variations, shipping, tax, sale dates, catalog visibility, etc.); product_variation exposes the same fields as product.
  • Changed — Price, stock, and rating fields mirror native return types (null instead of '').