WordPress.org

WordPress Developer Blog

What’s new for developers? (November 2024)

What’s new for developers? (November 2024)

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.

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. 

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:

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 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 to Menu, 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 a build-blocks-manifest command and a --root-folder argument for the plugin-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:

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:

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: 

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.

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: 

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. 

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

Your email address will not be published. Required fields are marked *