All notable changes to Loop Builder are documented here. This project adheres to Semantic Versioning.
- Template building for block (FSE) themes — registering single / archive / category / search templates that use Loop Builder. (On classic themes, the inherit-query mode added in 0.4.0 already powers archive / search displays.)
- Custom Field text alignment — the field block now exposes a left / center /
right alignment control (via
typography.textAlign). A small stylesheet promotes the field to a block box when aligned so the choice still applies for inline tags (span/strong/em). - Max items (total) on the loop — caps the number of items shown across all pages. The final page shrinks to respect the cap, and numbered / load-more pagination stop at the resulting page count.
- Link entire item to post — an option that makes the whole loop item clickable via a stretched-link overlay, keeping genuine links and buttons inside the item independently clickable.
- PHPUnit unit tests for the query-arg and pagination-cap logic
(
composer test). - wp-env + Playwright end-to-end tests (
npm run test:e2e).
- Custom Field block image and link display modes; an Event Date block for The Events Calendar.
- Save a configured loop as a reusable pattern; per-loop typography defaults.
- Query-building and editor refinements.
- Custom Field block (
loop-builder/field) — output a post meta or ACF field value for the current loop item, with an optional prefix/suffix, a choice of HTML tag, and full color/typography/spacing supports. Uses ACF'sget_field()for formatted values when available, falling back to raw post meta; empty values render nothing. When ACF is active, its field names are suggested in the editor.
- Pagination gained a Style panel (alignment — now centered by default — plus a plain/boxed link treatment and accent color).
- Grid, flex, and slider items are equal-height by default; list items are full-width.
- Conditional display ("Visibility") on every block — show/hide by login
status, user role (has one of / none of), and a date window. Authored in the
editor; enforced server-side via a
render_blockgate. - Inherit query mode — a Loop Builder block can drive itself from the page's main query (category / tag / author / search / home), so its layout and styling power archive and search results. Pagination falls back to standard WordPress page links in this mode.
- Multi-post-type querying — target several post types in one loop.
- Slider layout — a dependency-free, scroll-snap carousel with previous/next controls (progressive enhancement via the template's view script).
- Responsive columns — independent desktop / tablet / mobile column counts for grid, flex, and slider layouts (driven by CSS custom properties).
- Card style panel — per-item background, padding, corner radius, border, and a
hover-lift effect (
cardStyleattribute, applied via custom properties). - Bundled patterns under a "Loop Builder" category: Blog grid, News list, and Card slider.
- Query block variations for quick-start List and Slider layouts.
- Multi-clause taxonomy filters with AND / OR relation.
- Custom field (meta) query builder: key + comparison + value + type, multiple clauses with AND / OR relation.
- Date filter: rolling "last N days" window or an explicit after / before range.
loop-builder/paginationblock with three types (inserter variations): numbered links, previous / next, and load more.- REST endpoint
GET /loop-builder/v1/morepowering load-more: it re-discovers the query block inside the post byqueryIdand renders the next page of items. - Pagination is added to the query block's default template.
- Avoided a
strtoupper(null)deprecation when meta/taxonomy clauses omitted optionaltype/field/operatorkeys.
taxQuery/metaQueryattributes now use a{ relation, clauses[] }shape (the server still accepts the legacy array form).
loop-builder/queryparent block with query and layout settings.loop-builder/templateblock: live editor preview loop + server-side render that reuses core field blocks via injectedpostId/postTypecontext.loop-builder/no-resultsfallback block.- Query controls: post type, items-to-show, offset, order/orderby, author, keyword, sticky handling, and a single taxonomy filter.
- Grid / list / flex layouts with configurable columns and gap.