WordPress 6.7 is set for release on November 12, just days away. Now is a great time to review the latest updates in Core, WordPress Playground, Gutenberg, and the Dev Notes for this release.
This post provides a summary of development-related changes from the past month, including finalized features for WordPress 6.7, new functionality in Gutenberg, and updates to Playground. Items specific to 6.7 are marked.
As always, be sure to test these changes with the latest WordPress trunk and Gutenberg plugin (currently version 19.6.1). These monthly roundups help keep you informed and ready for new WordPress features. Also, I recommend revisiting last month’s post for additional highlights on what’s coming in WordPress 6.7.
Table of Contents
Highlights
Experimental inline comments
The third phase of the Gutenberg project is collaboration, which aims to provide a more intuitive way to co-author content in WordPress. An essential component of this effort is inline commenting, which allows multiple authors to review and provide feedback on content before it’s published.
In Gutenberg 19.6, inline commenting is now available as an experiment. To enable it, navigate to Gutenberg Experiments in the WordPress admin and select the Block Comments checkbox. When testing, note that you (currently) can only add comments to blocks in unpublished pages and posts.
You can follow the ongoing development of this feature in the tracking issue or review the previous work in the original pull request. Testing and feedback are needed.
Introducing the WordPress.org Experiments plugin
A new plugin called WordPress.org Experiments allows contributors to test experimental features before they’re integrated into WordPress Core. The first is called Plugin Closure Reasons, which adds a notice under each closed plugin on the Plugins page within the WordPress admin. This notice informs site owners when plugins they are using have been closed in the WordPress.org Plugin Directory—whether the plugin was abandoned, the author requested its removal, it was closed due to security concerns, or other reasons.
This feature has been in demand for years, and you can follow along with the Trac ticket, which dates back over a decade.
New block type registration APIs
WordPress 6.7 introduces wp_register_block_metadata_collection()
, a function that helps plugins load block types more efficiently, which is useful for plugins that include many blocks. Previously, only WordPress Core benefited from optimized block loading through a mechanism introduced in WordPress 6.1. Now, plugins can also take advantage of this, speeding up how blocks are registered and improving site performance.
Check out the official Dev Note for all the details, especially if you develop multi-block plugins.
WordPress Playground
There’s been a lot of exciting progress in WordPress Playground recently:
- A CORS Proxy is now available at playground.wordpress.net. It allows direct file loading from Git repositories via the
git:directory
resource. - The Playground team also added browser support for cURL, which is widely used in WordPress plugins. This update enhances plugin compatibility, letting developers showcase their plugins to users directly in Playground. It can even be used in a
runPHP
blueprint step. - With the multi-site feature released, the foundation was laid for the Playground team to start a new project: Using Playground for Data Liberation. You can read more about this project in their GitHub kickoff announcement.
After WordCamp Europe, contributors brainstormed renaming “Blueprints” to something more playful. Following research and a poll, “Blueprint” remains the preferred term for Playground configuration files. To explore Blueprints and learn how to create one, check the Playground documentation and examples in the Blueprints Gallery.
Speaking of Blueprints, four new examples have been added to the Gallery.
- Feed Reader with the Friends Plugin: This blueprint installs the Friends plugin and turns Playground into an RSS and ActivityPub reader. (You can add the Developer Blog to the reader using its feed URL)
- Create Block Theme: This blueprint installs the Create Block theme plugin. This configuration provides a solid foundation for creating a new theme, whether you’re building a child theme of an existing one or starting entirely from scratch.
- Use WPGraphQL to query WordPress: This blueprint installs the WPGraphQL plugin and defaults to the WPGraphQL IDE page, allowing users to test GraphQL queries and explore the GraphQL Schema.
- Demo of the Twenty-Twenty-Five Theme: This blueprint showcases the default theme, which has a magazine home page and plenty of posts with featured images.
Plugins and tools
Block Bindings API updates
The Block Bindings API received several key bug fixes and enhancements in the last two Gutenberg releases. Notably:
- Block bindings can now be used on the Widget screen, both in the dedicated Block-based Widgets Editor, and in the Customizer.
- The
useBlockBindingsUtils
function now accepts clientId as a parameter. - When a binding is registered on both the server and client, the label specified in the client registration now takes precedence.
- If the
src
attribute of an Image block has a block binding but no value, the image is no longer rendered.
To learn more about the Block Bindings API and the new enhancements in WordPress 6.7, refer to the official Dev Note.
Interactivity API updates
Development of the Interactivity API continues, with substantial enhancements to the experimental full-page client-side navigation feature in Gutenberg 19.5. This functionality refreshes the HTML of the entire page during navigation, allowing smooth transitions between pages while preserving the application’s state. For further updates, follow the project’s tracking issue.
Plugin Template Registration API updates
The Plugin Template Registration API, coming in WordPress 6.7, is an exciting enhancement that lets plugins register block templates. For details, see the official Dev Note and the recent tutorial on the Developer Blog.
This API includes two functions: register_block_template()
and unregister_block_template()
. When the API was initially introduced, these functions had a wp_
prefix, but it was removed in Gutenberg 19.5 and WordPress 6.7 to adhere to naming conventions. Double-check that your function names are correct if you’ve already started experimenting with this API.
Refining Zoom Out mode
As mentioned in last month’s roundup, WordPress 6.7 will introduce a basic version of Zoom Out mode, with ongoing work in Gutenberg to refine and improve it. Several important bugs have already been fixed in recent weeks to enhance this feature.
- Zoom Out now disengages when the editing mode is changed.
- Scaling issues have been fixed when entering Zoom Out mode.
- The keyboard shortcut
⇧⌘0
can now be used to toggle Zoom Out mode. - Double-clicking on a template while in Zoom Out mode now resets the zoom level instead of showing a dialog.
- Clicking
Enter
while in Zoom Out mode now resets the zoom level.
Zoom Out will be a fundamental part of the WordPress editing experience moving forward, so feedback is needed. Test your plugins and themes with this mode and report any issues in the Gutenberg repository.
isPreviewMode flag stabilization
The isPreviewMode
flag lets developers detect when the Editor is in preview mode, such as when you preview a pattern or block in the inserter. This flag, now stabilized, is useful when you want to modify how blocks are rendered depending on whether they are being previewed or actively edited by the user.
For example, imagine a block displaying a map. For performance reasons, you might choose to show a static image of the map in preview mode while rendering the full interactive map when the block is placed on the Editor canvas.
Component updates
Several Core components received minor updates in the last couple of releases of Gutenberg:
Combobox
,FormTokenField
: Both components can now display a message when no matches are found.DropdownMenuV2
: This experimental component has been renamed toMenu
, a prerequisite to it becoming stabilized in future releases.
You can view all WordPress components in Storybook.
Tooling updates
If you use the create-block
or wp-scripts
packages, the following enhancements may improve your workflows.
create-block
now supports a--target-dir
flag that allows you to specify which directory to scaffold the plugin or block in.wp-scripts
now includes abuild-blocks-manifest
command and a--root-folder
argument for theplugin-zip
command.
Themes
Compatibility with zoom-out mode
WordPress 6.7 will ship with a zoom-out mode that lets users quickly place patterns on a page. In this mode, blocks outside of the “main content” of the page will not be editable. WordPress will first look for a Post Content block to determine what the main content is but will fall back to looking for a <main>
tag.
On the whole, this should not change things for most theme authors, but if you’re building a block theme, you should ensure that each of your templates includes a single <main>
tag for a Group or other container-type block. This is already standard practice and required for the skip link to work.
Query Loop block changes
WordPress 6.7 will include several updates to how the Query Loop block works that should make it easier to use for both theme authors and users alike.
The controls to set the number of items, offset, and max pages are now located in the block Inspector sidebar, making them more discoverable. Previously, they were in the toolbar.
Another massive change to the workflow is when inserting the Query Loop block into a single post, page, or custom post type content area. The Query Type control will no longer appear in this scenario, and the default will be for displaying a custom query of posts. But when using the block in a template, the posts-per-page setting is now inherited.
And if that wasn’t enough, there’s a new filter for querying posts by post format.
Block library enhancements
The Post Date and Comment Date blocks in WordPress 6.7 support a “human-diff” date format. This lets you display the date/time since a post or comment was made (e.g., 3 hours ago, 10 minutes ago, etc.).
Several other block enhancements landed in Gutenberg 19.6, but these will not ship with WordPress until version 6.8:
- A lightbox option was added to the Gallery block link control.
- You can now control the resolution of images used for the Cover block.
- The Archives and Comments blocks now have border design tool support.
Enable/Disable starter page patterns
A new switch is under the Preferences modal for editing posts and pages titled Show starter patterns. This lets users disable your theme’s starter patterns from appearing when they create a new post or page.
This enhancement is important because it truly opens up a useful feature that you might not have used in the past. The previous workflow was a major pain point for many users, so a lot of theme authors avoided it. But you can now start bundling starter patterns without annoying your theme’s users.
Editable font size presets
WordPress 6.7 will also let you edit font size presets directly from the Styles panel in the Site Editor. Previously, these were only editable via theme.json
, limiting them to developers. Now, your theme users can make changes to them, but it also brings us a step closer to fully designing themes through a visual interface.
Notable bug fixes
Gutenberg 19.5 includes several bug fixes related to theming:
- The HTML for the Embed block in the editor now matches the markup on the front end.
- A fatal error generated when
get_the_terms_list()
returns aWP_Error
instance was fixed when using the Post Terms block. - When using the Code block on a site with a right-to-left language, the code should now correctly render from the left to the right.
Resources
Dev Notes of note
Developers’ notes, or Dev Notes for short, are published on the Make Core blog ahead of each WordPress release and provide a technical overview of new functionality and features.
At this point, nearly all notes related to WordPress 6.7 have been published, and you can find them using the tag #dev-notes-6-7. In addition to those mentioned earlier in this article, here are a few that caught my eye:
- Subscribe to changes in the Interactivity API state and context on client-side navigation in 6.7
- Updates to Script Modules in 6.7
- Extending the Preview Dropdown Menu in WordPress 6.7
- Internationalization improvements in 6.7
- Miscellaneous Block Editor Changes in WordPress 6.7
WordPress News
The WordPress News blog features posts covering the latest WordPress releases and an exciting update on the growing number of block themes in the Theme Directory.
- WordPress 6.7 Release Candidate 3 – Release and testing information
- WordPress Community Creates 1,000 Block Themes in 1,000 Days
Developer Hours and Learn WordPress
It’s been a busy few weeks for Developer Hours and Learn WordPress tutorials. Check out the recordings and new tutorials below:
- Developer Hours: Exploring the Twenty Twenty-Five Theme
- How to Simplify Client Editing in WordPress
- Creating Your Own Contact Form Plugin – part 2 (If you missed it, here’s part 1)
- Fixing Plugin Check issues
Recordings of all past Developer Hours sessions are available on WordPress.tv, and there is a wide range of developer content available on Learn WordPress.
Hallway Hangouts
One Hallway Hangout, which is a community discussion around WordPress features, occurred over the past month:
Developer Blog
Be sure to check out the latest tutorials on the Developer Blog if you haven’t done so yet. Stay tuned for more content showcasing the exciting new features coming in WordPress 6.7.
- How to add content-only editing support to a block
- Getting and setting Block Binding values in the Editor
- Mastering theme.json: You might not need CSS
- Snippet: Conditionally unregister patterns
You can subscribe to the Developer Blog and get every new post delivered straight to your inbox.
Props to @welcher, @greenshady, and @bph for co-wrangling the resources in this post, writing portions of it, and reviewing the final draft.
Leave a Reply