← All articles

WordPress 6.5: the Block Bindings API is the missing piece

05 June 20242 min read

Connect blocks to custom fields without writing PHP. For editorial site builders, a small revolution.

WordPress 6.5 (April 2024) shipped an API we had been waiting for since the block editor existed: Block Bindings. It lets you connect a native block (paragraph, image, button) to an external data source — post meta, ACF, custom — without writing PHP custom blocks.

The problem it solves

In Gutenberg world, if you wanted a paragraph to show a custom field (e.g. "unit price"), you had to ship a dedicated block. Every field, one block. Result: projects with 30 custom blocks nobody maintains.

How it works

You mark a block with a binding:

<!-- wp:paragraph {
  "metadata": { "bindings": { "content": { "source": "core/post-meta", "args": { "key": "price" } } } }
} -->
<p>Price placeholder</p>
<!-- /wp:paragraph -->

The paragraph reads the price post meta. Editor sees it live, frontend renders it.

Supported sources

  • core/post-meta: native post meta.
  • ACF: auto-registered from ACF 6.2+.
  • Custom: register your sources via PHP with register_block_bindings_source.

What we did right away

On a real estate client we went from 14 custom blocks (one per property card field) to 0. Editors use native blocks and bind via a menu; when we add a field, no theme changes.

Current limits

  • Only some blocks are bindable (paragraph, heading, image, button). Others must wait.
  • Inline editing of bound values is still partial: some sources are read-only.
  • The bind UX is technical for pure editors (better today for those who know custom fields).

This is the kind of change that would have saved years had it landed in 2019. Better late than never.