WordPress 7.0 has officially landed, and while the marketing teams are busy shouting about the new AI Client and real-time collaboration, I’m looking at the updated WordPress 7.0 design supports roster. If you’ve ever spent four hours trying to figure out why a specific core block won’t accept a border-radius in your theme.json, you know why this matters.
New Blocks and Structural Shifts
This release introduces long-overdue additions to the block inserter. We finally have a native Accordion (complete with Heading, Item, and Panel sub-blocks) and an Icon block. However, the real technical shift in WordPress 7.0 design supports is how the system handles Block Bindings and Pattern Overrides via dynamic filters.
<?php
/**
* Opting into Block Bindings for a custom block in WP 7.0
*/
function bbioon_register_custom_block_bindings( $supported_attributes ) {
// Specifically enabling the 'content' attribute for our custom block
$supported_attributes['bbioon/custom-cta-block'] = array( 'content', 'linkUrl' );
return $supported_attributes;
}
add_filter( 'block_bindings_supported_attributes', 'bbioon_register_custom_block_bindings' );
Previously, we had a hardcoded list of blocks that supported these features (Paragraph, Heading, Button, etc.). That’s gone. In WordPress 7.0, support is now dynamic. If you want a block attribute to opt into the Pattern Overrides mechanism, you have to use the block_bindings_supported_attributes filter. This is a massive improvement for extensibility, but it means a static checkmark in a lookup table no longer tells the whole story.
The Takeaway for Developers
Stop relying on hardcoded assumptions about what core blocks can and cannot do. With the introduction of the Accordion and the shift to filtered attributes for bindings, the editor is becoming more programmatic and less “fixed.” Update your theme.json, test your filters against the block_bindings_supported_attributes hook, and for heaven’s sake, double-check your “Verse” block styles before they break in production. Ship it.