WordPress.org

WordPress Developer Blog

What’s new for developers? (June 2025)

What’s new for developers? (June 2025)

Since the last update, a lot has happened in the WordPress world. WordPress 6.8 was released on April 15, 2025, with the followup 6.8.1 update on April 30.

And just last week, people from all around the world descended upon Basel, Switzerland, for three days to attend WordCamp EU 2025. There were many great highlights from the event, and if you were unable to attend, you can view the sessions via WordPress TV.

Of particular note was the Fireside Chat session with Mary Hubbard and Matt Mullenweg. The two covered a lot of ground, including EU web regulations, plugin security scans, evolving Five for the Future to measure impact, WordPress Campus Connect, AI, and more. There was even a hopeful announcement that we’d see WordPress 6.9 this year.

Let’s hop over onto the latest developer news from the last couple of months. As usual, make sure you’re testing any of the code changes listed against the latest Gutenberg plugin and WordPress trunk.

Highlights

WordPress AI team announced

At the end of May, Mary Hubbard announced the formation of a new WordPress AI team, which now has its own Make site.

The team held its inaugural introduction Hallway Hangout on June 2, 2025:

There are three key takeaways that came out of the discussion:

  • The team’s mission is to build the foundational building blocks for AI integration into WordPress because of the rapid evolution of AI and emerging standards.
  • There are no immediate plans to integrate LLMs into Core. Rather, the team will focus on canonical plugins and packages that abstract AI provider APIs.
  • The team has the full support of WordPress leadership in this ever-evolving landscape that is being carved by AI.

Some plugins that are coming out of this initiative include:

  • AI Services: Provides an abstraction layer for multiple AI providers, which enables developers to use a unified API for AI interactions.
  • MCP WP: Implements Model Context Protocol (MCP) servers in WordPress, enabling advanced AI integrations via command-line or plugins.
  • Feature API: Structures WordPress features for AI interaction, offering a standardized way to register resources for AI use.

View Transitions plugin

The Core Performance team announced a new View Transitions plugin. It is a community plugin that implements support for cross-document view transitions in WordPress. While it’s too early to say that it will make its way directly into Core, this is a good first step.

View transitions basically replace hard transitions when navigating from one URL to another while on a website, and instead use a smoother animation effect. The technology is currently supported by Chrome, Edge, and Safari, and users on other browsers should see no change.

A post with more details on the plugin is forthcoming, but here is some sample code to begin customizing for theme integration (there are some default settings already in the plugin, which may work with your theme):

add_theme_support( 'view-transitions', [
	'default-animation'       => 'wipe-from-right',
	'post-selector'           => '.wp-block-post.post',
	'global-transition-names' => [
		'.site-header'   => 'header',
	],
	'post-transition-names'   => [
		'.wp-block-post-title'          => 'post-title',
		'.wp-block-post-featured-image' => 'post-thumbnail',
		'.wp-block-post-content'        => 'post-content'
	]
] );

Plugins and tools

Update to modern Sass module system

Gutenberg 20.9 updated to the modern Sass module system, which utilizes @use over @import. On the whole, this is a welcome change that keeps the codebase up to date with Sass standards. But it does introduce some breaking changes. The package now requires Dart Sass to compile while legacy Sass compilers like LibSass and Ruby Sass are no longer supported.

Set your textdomain with Create Block

When creating blocks with the --no-plugin parameter in non-interactive mode, the block slug was previously automatically used for the textdomain. This became problematic for developers who were building multi-block plugins. The new --textdomain parameter allows you to manually set the textdomain for your blocks.

Guide component: customizable next and previous button text

You can now customize the text for the next and previous buttons when using the Guide component in your project. The two new properties are named nextButtonText and previousButtonText.

Standardize on using the Tools Panel

The ToolsPanel component has long been in Core, but many blocks were not yet using it. There is a tracking issue with 46 sub-tickets now closed as more and more Core blocks make use of the component.

The benefits of the change listed in the ticket include:

  • Control over which settings are displayed.
  • An easier mechanism for injecting additional settings into an existing group.
  • Visual parity with the Styles screen, which already uses the component extensively.

It’s worthwhile to follow Gutenberg’s lead here in your own plugins, creating a more consistent experience for your users.

WordPress Playground

Data URLs now supported in blueprints

Developers can now pass data URLs directly in the blueprint-url query parameter. This makes it possible to launch a Playground instance using self-contained blueprints without relying on an external server—ideal for lightweight demos, inline examples, or quick prototyping.

Intl support and PHP-WASM runtime improvements

The PHP environment now supports the Intl extension, enabling localized date, number, and string formatting. Additional updates to PHP-WASM include support for 64-bit integers, EXIF metadata parsing, and new build options like WITH_DEBUG for DWARF debug info. 

Legacy support for PHP 7.0 and 7.1 has been dropped to streamline performance and compatibility.

New SQLite driver improves database performance

A new SQLite driver has been integrated into Playground, improving backend performance and compatibility with modern WebAssembly environments. This change also lays the groundwork for more advanced storage and query features in future versions.

Playground CLI enhancements for local workflows

The CLI now supports mounting your current working directory, simplifying development with local assets and themes. A new skipSqliteSetup flag allows developers to bypass the default SQLite configuration in favor of external MySQL support. Other improvements include better packaging while a new --launch-browser flag was reverted to avoid platform-specific complexity.

Playground now dynamically mounts symlinked directories in PHP-WASM, resolving an issue that previously required manual mounting. This improvement enhances compatibility across all operating systems. A new --followSymlinks flag has also been added to the CLI to enable this behavior automatically.

Numerous fixes ensure better support for Windows users:

Plugin installation flow expanded and cleaned up

Playground’s plugin proxy now allows installing plugins directly from trusted GitHub organizations like WordPress, Automattic, and WooCommerce. Unused dependencies have been removed, formatting streamlined, and overall reliability of plugin installation has improved.

More flexible blueprint boot process

Developers can now mount OPFS (Origin Private File System) storage after boot, allowing for more dynamic content and user-driven storage in Playground-based sites. Additional tweaks improve compatibility with WordPress 6.8 and introduce support for blueprint bundling.

Notable quality-of-life fixes

Several minor fixes enhance reliability and developer ergonomics: 

Themes

The Comments Count and Comments Link blocks have long been available in the Gutenberg plugin under an experimental flag. They were two of the remaining blocks that were needed to bring parity with the available PHP-based template tags for theme authors to use in their themes. 

As of Gutenberg 20.7, these two blocks are no longer marked as experimental, which means they will effectively become newly available blocks to use with the next major WordPress release.

Button block element enhancement and width fix

Gutenberg 21.0 enabled an HTML element option for the Button block, which is located under the Advanced section in the block inspector. By default, Button blocks outputs an <a> element, but the update allows you to switch the tag to <button>

This change will let you implement true HTML buttons. The potential use cases are wide and will give you more freedom to implement more interactive features without building custom blocks.

WordPress 6.8 introduced a regression for Button blocks used outside of the Buttons container block and elements with the .wp-block-button__link class. This change set the link to a width of 100%, which broke some layouts. An update in Gutenberg 20.9 limits the scope of the width to when the Button is nestled within the Buttons container.

Enhanced content-only editing experience

The role attribute was set to content for several blocks in the last couple of Gutenberg releases:

This change ensures that users can edit the content of the blocks when the template has been locked for content-only editing. This is particularly useful when creating locked-down patterns where you want to let the user edit some content.

Non-interactive formats enabled for the Details block

Gutenberg 20.7 enabled all non-interactive formats from the Format Library to be used in the summary of the block. This means that things like links are disallowed, but you can use other formats to manipulate the summary text.

Noteworthy bug fixes

  • The Tag Cloud block no longer has unnecessary left and right padding when set to full-width alignment, respecting the root padding set by the theme.
  • The CSS specificity for the Pullquote block’s cite element has been lowered, which allows you to overrule the WordPress default styles via theme.json.

Notable user-facing changes

Props to @areziaal, @bph, @berislavgrgicak, and @ndiego for contributing to and reviewing this article.

Leave a Reply

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