Added — Loop and Variable blocks: build the query visually instead of writing code — post types, taxonomy and date filters, custom fields and ordering, with the visual and code views in sync.
Added — Data Picker: insert dynamic data directly into HTML attribute fields (class, id, href, src, data-*) and the Variable expression editor.
Added — Data Picker: is / is not tests, if / then / else, not, and comparison operators (equals, not equal, less than, greater than, in, starts with, ends with) can now be built and edited visually, instead of only as typed code.
Added — Expression language: slice a list or string with [start:length], such as post.categories[0:3] for the first three or title[0:20] for the first 20 characters.
Fixed — Loop block: a query set to iterate a relationship or post-object field (a list of posts, users or terms) rendered empty items — each item's data such as title and link was blank.
Added — Loop and Variable blocks: build the query visually instead of writing code — post types, taxonomy and date filters, custom fields and ordering, with the visual and code views in sync.
Added — Data Picker: insert dynamic data directly into HTML attribute fields (class, id, href, src, data-*) and the Variable expression editor.
Added — Data Picker: is / is not tests, if / then / else, not, and comparison operators (equals, not equal, less than, greater than, in, starts with, ends with) can now be built and edited visually, instead of only as typed code.
Improved — Data Picker: picking a field now fills the empty slot you are editing (such as the then or else of an if / then / else) instead of replacing the whole expression.
Added — Expression language: index into a list/map literal or a grouped expression with brackets, such as { a: 1 }['a'] or (post.categories ?? [])[0].
Added — Expression language: slice a list or string with [start:length], such as post.categories[0:3] for the first three or title[0:20] for the first 20 characters.
Fixed — Expression language: a trailing comma in a list, map or function call (such as ["a", "b",]) added a phantom empty item; it is now ignored, matching JavaScript.
Fixed — Loop block: a query set to iterate a relationship or post-object field (a list of posts, users or terms) rendered empty items — each item's data such as title and link was blank.
Fixed — HTML attributes: when the class or id field already held dynamic data ({{ … }}), a class or id added from the CSS Selectors panel did not appear in the field.