October brought three significant Gutenberg releases—21.6, 21.7, and 21.8—each introducing features that streamline development workflows and expand what’s possible in WordPress. With WordPress 6.9 approaching, these releases lay important groundwork for the upcoming major version.
Most of the features covered in this article come from the Gutenberg plugin, which enables upcoming WordPress features in advance of the next major release – try them in Playground.
The highlights this month include the Command Palette extending beyond the Site Editor, making navigation commands available throughout the admin. For developers working with taxonomies, the new experimental Terms Query block provides a dedicated tool for building taxonomy-based layouts. Additionally, Block Visibility controls now have their first UI implementation, allowing blocks to be hidden in the editor without deletion.
Another noteworthy development is the introduction of content-only editing for unsynced Patterns and template parts, which addresses a common challenge in managing client sites by preventing unintended layout changes while still allowing content updates.
Table of Contents
Highlights
Command Palette expands across the admin
The Command Palette is no longer confined to the Site Editor. Navigation commands are now available across screens, bringing keyboard-driven navigation to the entire WordPress admin. This represents a significant step toward more efficient workflows for power users.

Technically, this change extracts navigation commands from @wordpress/edit-site to @wordpress/core-commands, making them universally accessible. This architectural shift sets the foundation for admin-wide command integration in WordPress 6.9 and beyond, potentially reducing the need for repetitive clicking through admin menus.
Terms Query block addresses taxonomy display needs
Building category hubs and tag directories has traditionally required custom queries and workarounds. The new experimental Terms Query block provides a native solution for displaying and organizing taxonomy terms, similar to how the Query block handles posts.
This block is particularly useful for directory sites and content hubs that organize information by categories or tags. Current development focuses on nesting improvements and UX refinements, with a proposed Terms Count inner block that would display term post counts.
The interface has been improved by combining Order and Order By controls into a single dropdown, simplifying the user experience. For those working extensively with taxonomies, the ongoing hierarchy discussion outlines future enhancements to taxonomy handling in WordPress.
Content-only editing protects design integrity
A common challenge when handing off sites to clients is maintaining design consistency while allowing content updates. The new content-only mode for unsynced Patterns addresses this by restricting editing to text and media changes, preventing accidental layout modifications.
The feature includes an “Edit contents” button for when full editing access is needed, and ensures template-parts alignment remains consistent. Theme developers working with pattern libraries should monitor the coordination issue, which tracks implementation details, documentation, and configuration options.
Block Visibility Controls introduce conditional display
The long-awaited Block Visibility control support and UI has arrived, enabling blocks to be hidden in the editor while preserving their structure in templates. This first implementation allows developers to maintain blocks that may not always be displayed, such as seasonal content or conditional elements.
Rather than deleting and recreating blocks, you can now toggle their visibility while keeping all settings intact. This foundation opens possibilities for more advanced conditional display options in future releases, potentially including role-based or time-based visibility controls.
Global Styles extend to form controls
Form styling consistency across WordPress sites takes a step forward with theme.json support for common form inputs. Through new support for select or dropdown elements and text-based controls, developers can now define colors, borders, and typography for form elements directly in Global Styles.
This eliminates the need for custom CSS targeting individual form elements and ensures that search forms, comment forms, and plugin-generated forms automatically inherit your site’s design system. The integration means form elements finally feel like first-class citizens in the WordPress design toolkit.
Notes feature enhances collaborative editing
The commenting feature for blocks, now officially renamed to Notes, has matured significantly, making collaborative editing more intuitive and powerful. This feature allows editors to leave contextual comments directly on blocks, facilitating team discussions and content reviews within the editor itself.
Key updates include clearer messaging for orphaned notes (notes attached to blocks that have been deleted), visual highlighting of referenced blocks when reviewing notes, and refined thread displays that make conversations easier to follow.
Performance enhancements arrive via a new useBlockComments hook and streamlined action callbacks, ensuring the feature remains responsive even with multiple active note threads. Accessibility has been prioritized with keyboard-navigable note threads, while the addition of post type support simplifies enabling notes for custom post types. These improvements position Notes as a practical tool for team-based content creation and editorial workflows.
Plugins & Tools
DataViews & DataForm: A major leap forward
The DataViews package continues to evolve rapidly with substantial improvements across three Gutenberg releases. DataViews (for displaying data) and DataForm (for editing data) now share an expanded set of field types and controls, making it easier to build admin interfaces and custom post type management screens.
New field types and controls
The shared field types now support a much broader range of inputs, making it easier to build complete forms and data views without custom controls:
- Number field with numeric input validation
- Color picker field for color selection
- Password field with proper masking
- URL field with validation
- Telephone field with proper icons
- Data picker for items.
- Textarea control for text fields
Validation support
Multiple controls gained validation capabilities, helping you enforce data quality:
- Radio control supports validation and descriptions
- Select control validation
- Toggle group control validation
Layout and composition improvements
- Row layout for horizontal form arrangements
- Summary field support for composed fields
- GroupBy functionality for list layout
- Prefix/suffix options for the Edit property
- Boolean fields switched from toggle to checkbox UI
UI polish
The grid view got a major interface cleanup—titles can now be hidden, and actions are accessible on hover, allowing for a simplified grid without sacrificing functionality. The “Minimal UI” footer pattern also landed, making content management lists feel calmer and more task-focused.
Block Bindings API: New filter for custom attributes
The Block Bindings API gained a powerful new block_bindings_supported_attributes filter that lets you control which block attributes can be bound. This opens up custom binding scenarios beyond the default supported attributes. The API also includes fallback support for new features introduced in Core, plus an important fix where the Image block now saves <figcaption> when the caption attribute is bound.
Interactivity API and Commands
The Interactivity API now supports fetchpriority=low for script modules, giving you more control over loading priority for non-critical interactive elements.
For Commands, there’s a new useCommands hook that simplifies command registration and management. Combined with the Command Palette’s expanded availability (navigation commands extracted to @wordpress/core-commands), this is a good time to start registering commands for plugin workflows.
WordPress Scripts: Looking ahead to v2
There’s an active discussion on a vision for WordPress Scripts v2 that’s worth following if you rely on @wordpress/scripts for your build process. The conversation covers modernization, performance improvements, and developer experience enhancements.
Themes
Table of Contents block gains unordered list option
The Table of Contents block now supports unordered lists (<ul>) in addition to ordered lists, giving you more flexibility in how table of contents are displayed. The toolbar controls were updated to make this option easily accessible.
Accordion block improvements
The experimental Accordion block has matured significantly across these releases. It now includes BlockGap support for better spacing control, improved accessibility with keyboard navigation, and renamed block names for clarity. The structure has been refined with proper ARIA roles, heading level synchronization, and standardized CSS class names. Visual improvements include default focus and hover states and proper gradient background handling. The block also now features an example preview and better toolbar controls.
Time to Read block enhancements
The Time to Read block gained several useful features: a new range option to display reading time as a range (e.g., “3-5 minutes”), a word count option to show the total word count alongside reading time, and migration support for older blocks to use the new range display as default. The block now uses variations instead of toggles for better UX, and the edit function has been simplified for improved maintainability.
Playground
WordPress Playground continues to evolve as a development and testing environment, with several significant updates that improve both developer experience and Blueprint functionality.
IDE-like PHP Playground
A beta preview version of PHP Playground introduces an IDE-like interface with a file explorer and built-in terminal. The terminal comes with php, wp, and composer commands available, making it easier to test PHP code and interact with WordPress without leaving the browser – Check it out here.

Performance improvements for CLI
The Playground CLI now uses your local filesystem to share WordPress site files between server workers instead of copying them via zip files for each worker. This change dramatically speeds up multi-worker startup—what previously required behind-the-scenes zipping and unzipping files for every additional worker, now happens nearly instantly by sharing the same underlying file system.
Better content imports
Blueprints now use the wordpress-importer plugin for the importWxr step, updated to version 0.9.1+. This version automatically migrates your imported content and rewrites any links pointing to the original site to the correct Playground site URL. Previously, content imported with relative URLs like <a href=”/about-us”> would no longer point to the right page in Playground, where sites run at prefixed paths like /scope:kind-quiet-lake/.
The updated importer rewrites these URLs to the correct prefixed paths automatically, e.g., <a href=”/scope:kind-quiet-lake/about-us”>. This improvement to the WordPress Importer plugin benefits not just Playground but all WordPress users importing content.
AI-powered documentation assistance
Playground Documentation is testing an AI integration with Kapa.ai until the end of October, allowing users to ask questions about the documentation and receive contextual answers. This could make finding information about Playground features and APIs more accessible, the playground team would like to hear your opinion around this feature.
Performance
Several performance enhancements are making their way into WordPress 6.9 that could benefit plugin and theme developers:
Cache API improvements
The way WordPress handles cache invalidation has been refined, storing the “last changed” value directly in the cache key rather than using it as a salt. This change improves cache consistency and can reduce unnecessary cache misses in plugins that work with object caching.
Term count optimizations
Two fixes landed that reduce unnecessary term recounting during term operations. If you’re working with taxonomies in large sites, these should help reduce database overhead during term operations.
Lazy loading user meta
Work is underway to introduce lazy loading for user meta and user capabilities, similar to what already exists for blog, comment, and term meta. This could significantly improve performance for plugins that create WP_User objects, particularly on sites with users that have extensive metadata.
Resources & News
WordPress 6.8.3 was released in September, bringing important security fixes and bug patches. If you haven’t updated yet, now is a good time.
Since the last monthly roundup, the Developer Blog has published several new articles worth reading:
- Border radius size presets in WordPress 6.9 — Justin Tadlock demonstrates how to define reusable settings.border.radiusSizes values in theme.json and apply them consistently across blocks. This is perfect prep for theme authors looking to standardize their border radius tokens ahead of WordPress 6.9.
- Building a light/dark toggle with the Interactivity API — Justin Tadlock walks you through building a block-theme-friendly dark mode toggle using modern CSS and WordPress hooks—no custom block required. If you’re exploring the Interactivity API or want to add a light/dark theme switcher to your theme, this hands-on tutorial shows exactly how to do it.
- Implementing Namespaces and Coding Standards in WordPress Plugin Development — Troy Chaplin delivers a practical guide for writing clean, organized, and scalable plugin code. Learn how to set up PSR-4 autoloading with Composer, structure functionality into reusable classes, and enforce consistent coding standards across JavaScript, CSS, and PHP. This is a continuation of his earlier work on Refactoring the Multi-Block Plugin.
The Developer Blog is always looking for new contributors! If you’re passionate about sharing your WordPress knowledge with the community, consider joining us. It’s a rewarding way to give back.
Props to @greenshady, @welcher, @fellyph, @akirk, @zieladam and @pbh for contributing to and/or providing feedback on this article.
Leave a Reply