Changelogs

Follow the improvements and fixes in each product release.

GT ACF Blocks Plugin

GT ACF Blocks Plugin adds 29 production-ready blocks to the WordPress editor with automatic field registration, conditional assets, performance controls, and protected lifetime updates. Requires ACF Pro 6.0+…

Explore Product

Release History

Permalink

2.9.1

What’s Changed

Removed

  • FAQ schema dropped from the Accordion block. Google no longer supports FAQ rich results, so acf/accordion no longer emits FAQPage JSON-LD and the “Enable FAQ Schema” field is gone from the block settings.
  • Existing posts need no migration: blocks that still carry acf_accord_enable_faq_schema set to 1 render normally, and the stored value is ignored — no schema is printed.
  • The block migrator no longer writes acf_accord_enable_faq_schema into blocks it converts.

The Accordion block itself is unchanged — same markup, same styles, still searchable by “FAQ” in the inserter.

Commits

  • 2.9.1: drop FAQ schema from accordion block (20c57e7)
  • Fix PHP 7.4 CI dependency resolution (2483e1d)

Stats

  • Commits: 2
  • Changes: 13 files changed, 76 insertions(+), 91 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.9.0

What’s Changed

Performance

  • Replaced request-time block and field-group discovery with a generated OPcache-friendly manifest.
  • Consolidated editor styles into one cacheable bundle, with site-specific bundles that exclude blocks disabled through Block Manager.
  • Removed the TOC block’s full-post do_blocks() re-render and moved its runtime CSS/JavaScript to conditional assets.
  • Moved external-image downloads and thumbnail generation out of post saves into a bounded WP-Cron queue.
  • Changed migration and recovery scans from unbounded all-post queries to resumable keyset batches, including an optional background migration worker.
  • Added request-level image attachment lookup caching, post cache priming, bounded URL-preview responses, and contextual module loading.
  • Moved callout, feature-grid, post-display, checklist, changelog, and pros/cons variation styling into cacheable stylesheets or CSS custom properties.

Added

  • Block Manager for disabling unused block registrations and field groups.
  • Asynchronous block usage inventory, job status, and performance diagnostics.
  • Optional Server-Timing metrics in debug environments.
  • Generated-artifact checks, PHP 7.4-8.5 compatibility CI, JSON validation, and PHPUnit coverage.

Fixed

  • Replaced PHP 8-only str_ends_with() calls while retaining the advertised PHP 7.4 minimum.
  • Reworked public star ratings to use atomic database tables and a REST endpoint, preventing lost concurrent votes and transient-option growth.
  • Made URL Preview editor code cacheable and limited remote HTML responses to 1 MB.

Commits

  • Release 2.9.0 performance overhaul (5503112)

Stats

  • Commits: 1
  • Changes: 48 files changed, 12640 insertions(+), 1356 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.8.1

What’s Changed

Added — Migrator improvements

  • Batched migration: the Migrator now processes 30 posts per run with a Continue — Migrate Next 30 button and a progress bar, instead of one large request — friendlier on big sites and PHP time limits.
  • Affected-post visibility: Scan now lists every affected post (title, status, edit/view links) with colour-coded badges showing exactly what will change; each migration batch shows the same per-post detail for what it just changed.
  • New repair — legacy accordion field schema: acf/accordion blocks whose data used the old acf_accord_heading / acf_accord_content sub-fields (which render blank on the current template) are remapped in place to acf_accord_group_title / acf_accord_group_content, preserving FAQ schema and classes. This is the cause behind blank FAQ sections on older posts.
  • Restore points across batches: revert now covers the whole multi-batch session, and a new Discard restore points action clears backups without changing migrated content. WP-CLI: wp acf-blocks migrate [--limit=<n>] [--dry-run] [--revert] [--discard].

Commits

  • 2.8.1: batched migrator, affected-post visibility, accordion field-schema fix (4a845ab)

Stats

  • Commits: 1
  • Changes: 3 files changed, 460 insertions(+), 138 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.8.0

What’s Changed

Fixed

  • Block recovery (all InnerBlocks blocks): Resolved the “This block contains unexpected or invalid content” / Attempt Recovery error that emptied ACF InnerBlocks blocks (Callout, CTA, Hero, Section, Feature Grid, Testimonial, Team Member, Opinion Box, …). The cause was inner content saved as undelimited raw HTML (e.g. a bare <p> instead of <!-- wp:paragraph -->), which the editor treats as invalid InnerBlocks markup. Clicking Attempt Recovery then rebuilt the block from its template default, wiping the author’s content.

Added

  • includes/block-recovery.php — a self-healing helper that re-wraps orphaned inner HTML into proper core blocks (paragraph, heading, list, quote; anything unrecognised is preserved verbatim in a core/html block, so no content is ever lost). It is idempotent and runs in two ways:
  • Live self-heal: filters the block editor’s REST content.raw (edit context only) so existing posts open cleanly with no action required; saving then persists the repaired markup.
  • Permanent bulk repair: wp acf-blocks repair-content [--dry-run] [--post=<id>] rewrites affected posts in the database.
  • The InnerBlocks block set is derived automatically — unioning each block.json (supports.jsx) with the live block registry (ACF can enable InnerBlocks at runtime without declaring it in block.json) — with a acf_blocks_recovery_innerblock_names filter to customise it.

Added — Block Migrator

  • includes/block-migrator.php + visual Migrator on the options page (Settings → ACF Blocks License). A new Block Migrator & Repair card with Scan, Dry Run, and Migrate All actions. Every change is saved through wp_update_post() (a revision is stored), so migrations are reversible. WP-CLI parity: wp acf-blocks migrate [--dry-run].
  • Reversible migrations — before each post is migrated, its original content is snapshotted both as a native WordPress revision (visible in the editor’s Revisions browser) and as a per-post restore point. A Revert Last Migration button (and wp acf-blocks migrate --revert) rolls the entire batch back to its pre-migration content, byte-for-byte, independent of the site’s revision settings.
  • Legacy / renamed block migrations — blocks saved under names the plugin no longer registers are remapped to the current block with field-data translation, not just renamed:
  • acf/table-of-contents, acf/table-of-content → acf/toc
  • acf/productbox → acf/product-box (incl. the legacy features repeater)
  • acf/accordion-item → acf/accordion (consecutive items merged into one block)
  • acf/accordion-group → acf/accordion (wrapper + children merged, FAQ schema preserved)
  • acf/acf-accordion → acf/accordion (acc_question/acc_answer sub-fields remapped)
  • acf/poll has no current equivalent — reported and left untouched for manual handling.
  • Unparseable-markup repair — fixes content the block parser chokes on:
  • Orphaned closing delimiters (e.g. a stray <!-- /wp:post-content --> with no opener) that silently push every following block into freeform text. Removed with a delimiter stack so only genuinely unmatched closers are stripped.
  • Dangling openers (a truncated <!-- wp:… fragment with no -->).
  • Literal --> inside ACF block JSON, HTML-encoded to --> (identical when rendered).

Compatibility

  • WordPress 7.0: Added Tested up to: 7.0 header. Audited for WordPress 7 / ACF Pro 6.x — all 29 blocks already use Block API v3, register via block.json (no deprecated acf_register_block_type), retain the ACF 6.7+ acf_setup_meta compatibility layer, and contain no PHP 8.2–8.5 deprecation patterns (verified against PHP 8.5).

Commits

  • Release 2.8.0: block recovery + migrator with reversible migrations (fc6bc7d)

Stats

  • Commits: 1
  • Changes: 5 files changed, 1684 insertions(+), 2 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.7.1

What’s Changed

Commits

  • Fix post-display CSS regression: static flag with ID-scoped selectors (33406be)
  • Bump version to 2.7.1 (177d966)
  • Fix code quality, dark mode, performance, and extensibility across plugin (af92331)
  • Fix accessibility, dark mode, performance, and security issues (c8aca43)

Stats

  • Commits: 4
  • Changes: 30 files changed, 241 insertions(+), 103 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.7.0

What’s Changed

Commits

  • Bump version to 2.7.0 (63e5c10)
  • Improve product box design: fix font-size bug, checkmark bullets, two-column features, horizontal bottom layout, clickable image (ca67938)
  • Fix product box layout when features list is taller than image (f92566d)

Stats

  • Commits: 3
  • Changes: 3 files changed, 14 insertions(+), 7 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.6.0

What’s Changed

Changed

  • All blocks: Every ACF field is now optional. Removed required: 1 flags and min: 1 constraints on repeaters/relationships so any block can be inserted without being forced to fill specific fields.

Removed

  • Chat block: Completely removed the acf/chat-block and its directory (blocks/chat-block/).

Improved

  • LLM prompt library (llm/): Added llm/README.md as an index covering all 29 blocks grouped by category, universal rules (single-line JSON, field-key prefix, repeater format, InnerBlocks vs ACF data), and a block-comment anatomy reference. Removed stale “Required” annotations from nine per-block docs now that no fields are required.

Commits

  • Bump version to 2.6.0 (1fe9e20)
  • Improve LLM prompt library (af0a5b7)
  • Remove Chat block (11465d2)
  • Make all block fields optional (32dda06)

Stats

  • Commits: 4
  • Changes: 26 files changed, 153 insertions(+), 297 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.5.9

What’s Changed

Fixed

  • Product Review block: Fixed 4 Google Search Console structured data errors: missing price, hasMerchantReturnPolicy, shippingDetails in offers, and missing image fallback.

Added

  • Product Review block: New Product Type field — choose between Product (physical/generic) and SoftwareApplication (apps/SaaS) schema types. SoftwareApplication includes applicationCategory and operatingSystem fields.
  • Product Review block: New Return Policy field with options: No Returns (digital), Finite Return Window (with configurable days), Unlimited Returns. Maps to hasMerchantReturnPolicy in offers schema.
  • Product Review block: New Delivery Type field — Digital (instant/$0 shipping) or Physical. Digital products get zero-cost instant delivery in shippingDetails.
  • Product Review block: New Shipping Country field (ISO country code) used for both shipping destination and return policy region.
  • Product Review block: Image now falls back to post featured image when no product image is set, preventing GSC “Missing field image” errors.
  • Product Review block: Offers schema is now always generated (price defaults to "0" when empty) to prevent GSC missing field warnings.

Commits

  • Fix GSC structured data errors and add schema options to Product Review block (37e9980)

Stats

  • Commits: 1
  • Changes: 4 files changed, 236 insertions(+), 23 deletions(-)

Plugin Info

  • Blocks included: 30
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.5.8

What’s Changed

Commits

  • Improve chat block accessibility and fix preview handling (b325332)
  • Fix chat block not loading in editor by using nested array example format (7532f12)

Stats

  • Commits: 2
  • Changes: 4 files changed, 24 insertions(+), 24 deletions(-)

Plugin Info

  • Blocks included: 30
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.5.7

What’s Changed

Commits

  • Bump version to 2.5.7 (df44467)
  • Make acf-innerblocks-container transparent to layout in editor (4a66f2f)
  • Remove extra acf-innerblocks-container div from section block frontend (715ea20)
  • Fix bugs, security issues, and dead code found in codebase audit (43fc8e5)
  • Add Chat block for displaying styled conversations between people (dcf9294)

Stats

  • Commits: 5
  • Changes: 15 files changed, 297 insertions(+), 53 deletions(-)

Plugin Info

  • Blocks included: 30
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.5.6

What’s Changed

Commits

  • Bump version to 2.5.6 (b0f8846)
  • Remove .flavor-dark from all dark mode selectors across all blocks (2de7c95)

Stats

  • Commits: 2
  • Changes: 22 files changed, 30 insertions(+), 30 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate
Permalink

2.5.5

What’s Changed

Commits

  • Improve stats block design, fix pros-cons dark mode, remove prefers-color-scheme across all blocks (52d4d6f)
  • Bump version to 2.5.5 (22530f5)
  • Fix callout block dark mode: add explicit text colors and dark mode support (ad9aa68)

Stats

  • Commits: 3
  • Changes: 22 files changed, 102 insertions(+), 24 deletions(-)

Plugin Info

  • Blocks included: 29
  • Requires WordPress: 6.0+
  • Requires PHP: 7.4+
  • Requires: ACF Pro 6.0+ or Secure Custom Fields

Installation

  1. Download acf-blocks-plugin-*.zip from the assets below
  2. Go to Plugins → Add New → Upload Plugin in WordPress admin
  3. Upload the zip file and activate