</svg>
</button></figure>
Since then, community-built providers for OpenRouter, Ollama, and Mistral have been published, alongside a dedicated call for testing. If you want to build your own provider plugin, the Connectors API Dev Note is a must-read.
Client-Side Abilities API
First introduced on the PHP side in WordPress 6.9, the Abilities API now has its JavaScript counterpart landing in 7.0. Two new packages handle it: @wordpress/abilities for pure state management, and @wordpress/core-abilities for the WordPress integration layer, which auto-fetches server-registered abilities via REST. You can register abilities with input/output schemas, permission callbacks, and annotations, laying the groundwork for browser agents and WebMCP integration. Read the Client-Side Abilities API Dev Note for all the details.
Gutenberg releases
Three Gutenberg releases landed ahead of the WordPress 7.0 release. You can read the full release posts for each version at the links below, or carry on reading this post for the highlights.
User facing changes
If your theme offers block style variations, users can now see a live preview of the variation before applying it. Style variations are also now available for patterns in contentOnly mode.
The Playlist block now has a waveform audio visualization using the @arraypress/waveform-player library. This displays a visual representation of the audio file being listened to, and opens the door to more designs for the block.
Site Logo & Icon in the Design panel
Site logo and icon management is getting a dedicated screen in the Site Editor’s Design panel, shipping in Gutenberg 22.8. The new screen uses a compact media editor for both fields, making it quicker to set or swap your site’s logo and favicon without navigating out to admin settings separately. A small but welcome quality-of-life improvement for anyone building or managing block themes.
You can now add new navigation links directly from the Site Editor’s sidebar List View for navigation menus, rather than needing to open the block in the editor canvas and interact with the block inspector. It’s a small quality-of-life change, but one that meaningfully speeds up the process of managing navigation menus in the Site Editor.
RTC: Collaborator text selections now visible
In Gutenberg 22.8, real-time collaboration now shows collaborator text selections, not just cursor positions. When another user selects text, you’ll see their selection highlighted in their assigned color — consistent with what you’d expect from collaborative tools like Google Docs. The release also introduced redesigned presence avatars, peer limits, and disconnection debouncing for improved stability.
Connectors extensibility
Gutenberg 22.8 introduced extensibility improvements to the Connectors system, allowing third-party provider plugins to integrate more deeply with the Connectors screen and API.
Client-side navigation block variant for create-block
The @wordpress/create-block scaffolding tool has a new interactive variant that adds client-side navigation support out of the box. The variant provides a self-contained working example that covers common real-world patterns — query parameter navigation for pagination, search results, and filtered archives — and works immediately after scaffolding, with no additional setup required. If you’ve ever found the Interactivity API’s client-side navigation tricky to wire up from scratch, this is a great starting point.
Pattern overrides for custom blocks
Pattern overrides in WordPress 7.0 are being extended to support custom blocks — not just core blocks. This means you can create synced patterns that include your own custom blocks while still allowing per-instance content edits. Read the Pattern Overrides Dev Note and the Pattern Editing Dev Note for the full picture.
Changes to the Interactivity API
The Interactivity API has some notable changes heading into 7.0: state.navigation is now deprecated. The new watch() function and server-side state.url population enables cleaner patterns for side effects and navigation tracking. If your plugin or theme uses state.navigation, now’s the time to migrate. See the Interactivity API Dev Note for migration guidance.
Command palette: sections and recently used
The command palette received a structural update in 22.9, introducing sections to organize commands into logical groups, along with a Recently used section that surfaces your most-used commands at the top. If your plugin registers custom commands via wp.data.dispatch( 'core/commands' ), they’ll now appear within the appropriate section rather than in a flat list.
The Forms block gained a hidden input field variation in Gutenberg 22.9. This lets you add hidden fields to block-based forms — useful for tracking parameters, form identifiers, or any metadata you need to pass along on submission without displaying it to the user.
Themes
A new State dropdown now appears in Global Styles next to the Button block title. Selecting a state — Hover, Focus, or Active — switches all style controls to edit that specific pseudo-state, with a live preview in the block preview area. No more needing theme.json or custom CSS to style button states. This shipped in Gutenberg 22.8.
Theme developers are now able to style :hover, :focus, :focus-visible, and :active states directly on button blocks and their style variations using theme.json. This was previously only possible using custom CSS. The Dev Note contains a detailed example of how this works. This work is part of a broader effort towards a standardized way to modify interactive states.
Block visibility: viewport-based controls
WordPress 7.0 expands the Block Visibility feature from 6.9. Users will be able to show or hide blocks per device — mobile, tablet, desktop — via the new viewport key inside blockVisibility metadata. Crucially, this is implemented via CSS, not DOM removal.
If your code assumes blockVisibility is always a boolean, you’ll need to update it to handle an object as well. No changes are needed if your blocks don’t interact with the markup server-side. Full details in the Block Visibility Dev Note.
The Navigation Link block now supports styling the current/active menu item directly via theme.json. Previously, targeting the active state required custom CSS with specificity workarounds. Theme authors can now handle it cleanly in the same place as the rest of their navigation styles.
Tabs block inner block restructure
The Tabs block has undergone further restructuring of its inner blocks in Gutenberg 22.8, following the significant refactor covered in the February 2026 roundup. The Tabs Menu and inner block structure continue to be refined based on contributor feedback. If you’re building themes or plugins that style or extend the Tabs block, keep an eye on this tracking issue as it evolves.
Cover Block: loop YouTube background videos
The Cover block now supports a playlist parameter to loop YouTube background videos. Previously, YouTube’s embed API didn’t expose a clean way to loop a single video — the block now handles this automatically by passing the correct playlist parameter behind the scenes. No changes needed for existing Cover blocks; the looping behaviour will work automatically for YouTube backgrounds going forward.
Background gradient support for background images
Gutenberg 22.9 adds background gradient support that can combine with background images via block supports. Theme and block developers can now layer a gradient over a background image directly through the block editor’s design controls — useful for overlays, text readability treatments, and decorative effects without needing custom CSS. If your block registers background support, gradient options will be available alongside existing image controls.
Playground
WordPress Playground MCP server
As someone who’s always interested in WordPress AI news, this is one I’m genuinely excited about. WordPress Playground now has an official MCP server via the new @wp-playground/mcp package. One command wires up Claude Code or Gemini CLI to a browser-based Playground instance over WebSocket, letting your AI agent read and write files, execute PHP, manage sites, and navigate pages — all locally, without touching the WordPress admin.
claude mcp add --transport stdio --scope user wordpress-playground -- npx -y @wp-playground/mcp
The MCP server exposes tools across four areas:
- Site management:
playground_get_website_url, playground_list_sites, playground_open_site, playground_rename_site, playground_save_site
- Code execution:
playground_execute_php, playground_request
- Navigation:
playground_navigate, playground_get_current_url, playground_get_site_info
- Filesystem:
playground_read_file, playground_write_file, playground_list_files, playground_mkdir, playground_delete_file, and more
Think plugin testing, live database debugging, and theme scaffolding driven entirely by conversation.
Resources
WordPress 7.0 Dev Notes and Field Guide
The full Field Guide will be published alongside the rescheduled release. In the meantime, the published dev notes are essential reading if you’re preparing your plugins or themes. Here’s the full list so far:
Keep an eye on make.wordpress.org/core for additional dev notes and the updated release schedule as they’re published.
Developer Blog
- If you’re currently using
@wordpress/scripts, this one’s for you. JuanMa Garrido published a detailed introduction to @wordpress/build on the Developer Blog. The new tool replaces the webpack and Babel pipeline with a significantly faster esbuild-based engine and automatically generates PHP registration files from package.json. The migration path for existing @wordpress/scripts users is designed to be low-friction. If you’re planning to update your plugin’s build tooling, that post is essential reading.
Never want to miss an article again? Subscribe to the WordPress Developer Blog.
Props to @greenshady and @areziaal for reviewing this article.