WordPress 7.0’s “Developer’s Toolbox” is a set of changes that will not show up in any “what’s new” screenshot, but will change how you write code. Here are the ones worth knowing.
PHP-only block registration
This is the most significant API change in 7.0. You can now create blocks and patterns entirely on the server in PHP, and register them with the Block API — no JavaScript build step required.
A block declares itself for auto-registration with a support flag plus a render callback:
register_block_type( 'my-plugin/notice', [
'supports' => [ 'autoRegister' => true ],
'attributes' => [
'message' => [ 'type' => 'string' ],
],
'render_callback' => function ( $attrs ) {
return '<div class="notice">' .
esc_html( $attrs['message'] ) . '</div>';
},
] ); When a block declares 'supports' => [ 'autoRegister' => true ] alongside a render callback, WordPress registers it automatically and exposes it to the client via a JavaScript global. PHP-registered block attributes are editable in the editor, inspector controls can be generated from those attributes, and DataForm inspector controls are added automatically for PHP auto-registered blocks.
The Interactivity API gains watch()
The @wordpress/interactivity package gets a new watch() function. It subscribes to changes in any signal accessed inside a callback and re-runs that callback whenever those signals change — a clean reactive primitive.
import { store, watch } from '@wordpress/interactivity';
store( 'myPlugin', {
callbacks: {
logUrl() {
watch( () => {
// Re-runs whenever state.url changes.
console.log( 'URL is now', state.url );
} );
},
},
} );
The matching directive, data-wp-watch, can be attached to a DOM element’s lifecycle to react to state changes. One related detail: state.url is now populated server-side during directive processing and stays unchanged until the first client-side navigation — so server-rendered output is correct before any JavaScript runs.
DataViews and DataForms
The DataViews and DataForms systems — the data-table and data-form components Core uses for admin screens — expand in 7.0 with a new Activity layout, a new Details layout, improved modal appearance, and the ability to register third-party types in the Field API.
If you build custom admin screens, this matters: the same components that power Core’s list and edit screens are increasingly available to you, and the Field API now accepts your own field types.
Block Bindings iterations
Block Bindings — the system that connects block attributes to dynamic data sources — continues to mature. 7.0 adds the ability to filter available attribute sources by format, aligning Block Bindings with the Field API. Pattern Overrides now apply to any block, including custom blocks, opted in through block_bindings_supported_attributes filters.
A new plugin-list filter
A small but welcome admin API: the new plugins_list_status_text filter lets you add custom filtering to the plugins screen. Custom statuses added via plugins_list now appear as tabs at the top of the plugin list, and the tab label is customizable.
add_filter( 'plugins_list_status_text', function ( $text, $status ) {
if ( 'needs-update' === $status ) {
return 'Needs 7.0 update';
}
return $text;
}, 10, 2 ); Site Editor build and routing
Finally, 7.0 lays foundations for an extensible Site Editor: route validation, a new @wordpress/boot package that lets plugins build custom Site Editor pages, and a refactored @wordpress/scripts that builds from directories and reduces the Webpack dependency. These are groundwork — the payoff arrives in later releases — but if you build editor extensions, the direction is worth tracking.
What’s next
You now have the full picture of WordPress 7.0 — AI, dashboard, breaking changes, new blocks, and new APIs. The final tutorial pulls it together into something actionable: a step-by-step checklist to get your own plugin or theme 7.0-ready.
Get the next one in your inbox. Practical tips, no fluff.
More tutorials
View all- WordPress
How to Prepare Your Plugin or Theme for WordPress 7.1
A WordPress 7.1 compatibility checklist: iframed editor, client-side media hooks, Abilities public flag, jQuery UI 1.14.2, plus features that did not ship (React 19, collaboration).
22 min
- WordPress
What's New in WordPress 7.1 for Developers
WordPress 7.1 field guide for developers: client-side media, Abilities API, always-iframed editor, SVG Icon API, global styles, and what to test before users upgrade.
18 min
- WordPress
Abilities API Changes in WordPress 7.1
WordPress 7.1 upgrades the Abilities API: a unified public flag, wp_get_abilities() filtering, execution lifecycle hooks, JSON Schema for clients, and typed REST input.
25 min