WordPress.org

WordPress Developer Blog

What’s new for developers? (October 2024)

What’s new for developers? (October 2024)

The WordPress 6.7 release cycle is in full swing, with Beta 2 released earlier this week on October 8. The official release is scheduled for November 12 and will introduce many new features, including the Twenty Twenty-Five theme. For all key dates, check out the release party schedule post.

If you haven’t already, now is the time to start testing WordPress 6.7 and the new default theme. If you encounter any issues, please report them in the appropriate place: the Gutenberg GitHub repository for Editor-related issues, the Twenty Twenty-Five repository for theme-specific issues, or WordPress Trac for any other concerns.

This post covers a mix of features finalized for WordPress 6.7 just before Beta 1 on October 1, along with new functionality now available in Gutenberg. Items specifically related to 6.7 will be clearly marked.

As always, be sure to test these changes with the latest version of WordPress trunk and the Gutenberg plugin, currently version 19.4. These monthly roundups are designed to keep you informed and help you get ready for everything new coming to WordPress.

Highlights

Block Bindings API

The Block Bindings API user interface (UI) is officially out of the experimental phase and will be included in WordPress 6.7. Initially, the UI will be limited to post meta, but ongoing work in Gutenberg will explore extending this functionality to other sources. Check out the video below for a demonstration of this new UI.

By default, only Administrators will have permission to create and modify bindings, adding an extra layer of control. This restriction is managed by the new canUpdateBlockBindings Editor setting, which you can adjust for additional user roles using the block_editor_settings_all filter as needed.

Additionally, several Block Binding APIs were stabilized and made available for developers in Gutenberg 19.4, and they will also be included in WordPress 6.7. A detailed developer note will be published closer to the 6.7 release, but in the meantime, you can refer to the pull request for a full overview of the new registration APIs and utilities.

For more information on upcoming changes to the Block Bindings API in WordPress 6.7, check out the tracking issue.

Zoom Out Mode

The new Zoom Out Mode is no longer experimental and will be included in WordPress 6.7. With the click of a button, it provides a zoomed-out view of the Editor canvas, making it easier to compose page layouts with patterns. Follow the 6.7 iteration issue for more details, or try it out for yourself with the new Twenty Twenty-Five theme in Playground.

Ongoing development in Gutenberg will expand on what’s included in 6.7. Eventually, this mode will be closely integrated with content-only editing and the new Write mode, highlighted below.

New Write and Design modes

In Gutenberg 19.4, the two editing modes in the Editor have been renamed from Select and Edit to Write and Design. The new Design mode works exactly as before, allowing users to add any block, modify styles and settings, add patterns, and more.

The new Write mode, however, offers a simplified editing experience tailored for newer users or those who prefer a more streamlined interface with less complexity. In this mode, blocks are restricted to content-only editing

Write mode is still under active development and will continue to evolve in future Gutenberg releases. If you build or maintain custom blocks, now is a great time to explore content-only editing (covered in more detail below) and ensure your blocks are compatible.

Preview dropdown extensibility

In WordPress 6.7, the Preview dropdown is now extensible, allowing developers to add custom menu items that enhance preview functionality. Imagine a plugin that enables a dark mode preview—the possibilities are endless.

Implementing this is straightforward with the new PreviewDropdownMenuItem component, which can be added using registerPlugin(). This component supports a title, icon, and click handler, allowing you the flexibility to create tailored preview options. For more details and a code example, check out the documentation.

WordPress Playground

There’s a lot to be excited about in the world of WordPress Playground. First, the website received a massive overhaul and now allows you to run multiple playgrounds at once using the Playground Manager. You also save each instance to persistent storage, either in the browser or to a local directory on your device. Check out the Make post for all the details.

Next, the Playground team has been hard at work on new features, including refreshless website deployments, new query parameters for testing WordPress Core and Gutenberg PRs, and some substantial improvements to the way you can load resources into Playground using blueprints. 

And finally, contributors have added three new guides to the developer documentation in the last month: 

Plugins and tools

Template registration API changes

Last month’s recap highlighted a new API that developers can use to register block templates from plugins using the functions wp_register_block_template() and wp_unregister_block_template(). Since then, contributors have decided to remove the wp_ prefix, changing the functions to register_block_template() and unregister_block_template().

This change will be implemented in WordPress 6.7. If you have already started using these functions with the Gutenberg plugin, you’ll need to update them once Gutenberg 19.5 is released (10/23) or when you upgrade to WordPress 6.7 in November.

View meta boxes in the iframed Post Editor

In previous WordPress versions, metaboxes prevented the Editor canvas from being iframed. An iframed canvas offers many benefits, particularly in that styles can more easily be contained. As a result, several explorations have been made on how to support iframing alongside metaboxes, which are common in many popular WordPress plugins.

With WordPress 6.7, a new split view introduces a resizable drawer for metaboxes, while the Editor canvas is now iframed. Keyboard controls were also added to make resizing the drawer easier.

If you develop or use plugins that include metaboxes, make sure to test this enhancement thoroughly. Depending on how metaboxes are implemented, the iframed canvas may impact custom functionality.

Content-only editing

In WordPress 6.7, the role property in block.json, used to define whether an attribute is editable in content-only editing mode, has been stabilized. Previously marked as unstable, this update makes it easier for custom block developers to implement content-only editing.

In the coming weeks, a post on the Developer Blog will cover how to support content-only editing in custom blocks.

Additional improvements to content-only editing in the last few weeks include:

Content-only editing will be a major focus in future Gutenberg releases. For the latest updates and roadmap details, follow the Advancing Content-Only Editing tracking issue. Also, share your feedback if you have specific needs around controlling this mode based on user roles and capabilities.

Interactivity API

The Interactivity API saw some nice updates that will be included in WordPress 6.7. The functions getServerState() and getServerContext() from the @wordpress/interactivity package are now exposed and available for developers to use. 

Similar to getState() and getContext(), these functions return the initial server-side state or context instead of the client-side state or context. They are also required to subscribe to changes in state and context when the HTML is updated using navigate().

Typography block support stabilization delayed

Although originally planned for WordPress 6.7, the stabilization of typography block supports has been shifted to the 6.8 release cycle. Custom block developers using the experimental typography supports should monitor this work closely. It will be important to test your blocks early to ensure there are no backward compatibility issues. Stabilizing typography supports will also pave the way for finalizing other experimental block supports like __experimentalDefaultControls.

Client-side Media Processing experiment

An experiment introduced in Gutenberg 19.2 enables media processing on the client side instead of the server, reducing server load and enhancing performance. You can view the full tracking issue for details.

In Gutenberg 19.3, a new Media section was added to the Editor Preferences modal, allowing you to customize settings for the media upload flow. This feature remains experimental and must be enabled through the Gutenberg > Experiments page. Testing is encouraged.

Data Views and DataForm API enhancements

The DataForm API was introduced in Gutenberg 18.8 as part of a larger effort to reduce duplicated form code in Data Views. Work has continued over the last few releases, and Gutenberg 19.4 now adds support for the combinedFields layout, enabling multiple fields to be rendered in the same row.

In Data Views, more broadly, users can now reorder controls at the field level, and bulk actions have been moved to the footer for a more streamlined editing experience.

PreSavePost and SavePost filters stabilized

The stabilization of the PreSavePost and SavePost filters was completed just in time for WordPress 6.7. Originally introduced in an experimental form in Gutenberg 19.0, these filters allow plugin developers to enforce validation requirements before a post is saved. If validation fails, returning false prevents the post from being saved. 

A detailed dev note on this functionality will be released later this month, but you can review the implementation in the original pull request and the updates made during stabilization.

As part of a broader effort to stabilize Editor components, the Navigator component—used to render nested views, panels, and menus with navigation between them—has been stabilized. For more details, see the pull request or explore the WordPress Storybook for examples of the component in action.

Fields package introduced

The @wordpress/fields package offers a collection of data field components tailored to WordPress user interfaces and requirements. Currently used alongside Data Views, this package includes components such as a Featured Image selector and a post slug editor. Although initially intended to be private, the package was later made public. While it has specific and limited use cases, it is now available for plugin developers to use. 

Block enhancements

WordPress 6.7 includes several minor block enhancements aimed at improving the editing experience:

Create Block package updated

The @wordpress/create-block package, the official tool for scaffolding WordPress plugins that register custom blocks, was recently updated. All generated plugins now require a minimum of WordPress 6.6 and PHP 7.2.

Other notable updates

Here are a few additional updates to note:

Themes

Create Block Theme

Version 2.5 of the Create Block Theme plugin was recently released with several quality-of-life improvements: 

  • Font assets now have human-readable names when a theme is saved or exported.
  • The erroneous hidden category was removed from patterns.
  • A main tag wrapper was added to the Query Loop in the main index.html template to better support the upcoming Zoom Out Mode.
  • Font assets are now copied to the local theme folder when creating style variations.

One additional enhancement was added that’s worth keeping an eye on. Synced patterns can now be saved to the theme. This is the first step to exploring pattern management within the Create Block Theme plugin, something the community has been looking forward to for some time.

Fluid typography preset overrides

Before WordPress 6.7, specific font-size presets could opt out of fluid typography if it was globally enabled in theme.json. Now, with 6.7, theme developers can also do the reverse: if fluid typography is globally disabled, specific presets can opt in by setting the fluid property to true or by defining an object with min and max values. You can find code examples in the original pull request.

Be sure to check out the Core Editor Improvement: New features and flows for Font Management post on the Make blog, which includes detailed information and a video walkthrough of the recent updates.

Disable starter patterns

Certain themes, like Twenty Twenty-Four, include patterns that appear in a modal whenever you create a new page. These patterns are designed to help newer users quickly build page layouts. However, the “Choose a pattern” modal can be distracting for experienced users who prefer starting with a blank page. 

In WordPress 6.7, users will be able to disable this feature by toggling off “Show starter patterns” in the Editor Preferences modal.

More design tools and block previews

Contributors have built on last month’s work by adding border support to the Comment Edit Link and Comment Reply Link blocks. Additionally, various Comment blocks (such as author name, date, content, and pagination) and Query blocks (including no results, pagination, and title) now display previews when you hover over them in the Inserter.

Work is underway to enhance the Style Book’s presentation and design. Together with the new block previews, this improvement will help users visualize each block and any applied theme styles more easily before inserting them.

Color palette changes

In the Site Editor, previews of theme and style variation color palettes previously displayed five colors. In WordPress 6.7, this will be reduced to four colors to simplify the interface. This change should have minimal impact on themes but is something to keep in mind when designing color palettes.

Resources

The following resources and updates from other WordPress.org sites are also available and relevant for developers.

WordPress News

Developer Hours and Hallway Hangouts

With a busy few weeks preparing for WordCamp US and WordPress 6.7 Beta 1, there were no Hallway Hangouts in the last period. However, two Developer Hours sessions were held, covering the new Template Registration API and Data Views. You can watch the recordings below:

Recordings of all past Developer Hours sessions are available on YouTube in a dedicated playlist.

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 @greenshady and @bph for co-wrangling the resources in this post and reviewing the final draft.

2 responses to “What’s new for developers? (October 2024)”

  1. Eden Avatar
    Eden

    Thanks a lot for your helpful post

  2. Yaser Shahi Avatar

    Huge work is ongoing thanks to all people making WordPress.

Leave a Reply

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