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' %}.
- Added —
image.ID, image.post_title, image.post_parent, etc. resolve through the underlying post.
- Added —
get_taxonomy(slug) function for taxonomy labels: {{ get_taxonomy('category').label }}.
- Improved — Filter + comparison patterns (
{{ x|filter == y }}) now parse as expected.
- Improved —
post.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 '').