Table of Contents
Highlights
New Composer package for the Abilities API
The Composer package wordpress/abilities-api
is now properly configured and available for early testing. WordPress extenders can begin experimenting with the Abilities API ahead of its official release in WordPress 6.9.
WordPress gets an Accordion block

This change introduces four new experimental blocks:
- Accordion
- Accordion Item
- Accordion Header
- Accordion Panel
This has been a long time coming, with the original issue dating back to 2020. A lot of work went into ensuring that the blocks followed the HTML semantics and practices presented by examples from WCAG and USWDS. The front-end experience is powered by the Interactivity API, making this block completely self-contained within the tools provided by WordPress core.
To try out these new blocks, be sure to have the latest version of the Gutenberg plugin installed. Then, visit Gutenberg > Experiments and check the option to “Enable experimental blocks.”
Style input elements with theme.json
As part of the effort to allow theme.json to style form elements, it’s now possible to target text based controls as well as select or dropdown elements using the styles.elements
property in theme.json
.
You can try this out with the latest version of the Gutenberg plugin installed by enabling the Form block under the Experiments page. Add the following to your theme.json
to add a red border to the text inputs and textareas.
"elements": {
"textInput": {
"border": {
"radius": "0",
"style": "solid",
"width": "1px",
"color": "red"
},
"color": {
"text": "var(--wp--preset--color--theme-2)"
},
"typography": {
"fontFamily": "var(--wp--preset--font-family--inter)"
}
}
}
You can test the select/dropdown by adding either a Categories List or Archives block with the “Display as dropdown” option active and then add the following to your theme.json
:
"elements": {
"select": {
"color": {
"text": "red",
"background": "blue"
}
}
}
Plugins and Tools
Data Views
Data Views has seen a number of updates and enhancements in the last month. Some of the more notable additions are adding infinite scroll to dataviews, adding a smaller preview size, and adding a new card layout, along with a number of smaller updates and enhancements:
- DataForm: Panel layout can open as dropdown or modal. (71212)
- Add enableMoving option to the table layout to allow or disallow columns moving left and right. (71120)
- Allow hiding configuration. (71173)
- DataForm: Add array control. (71136)
- DataViews story: Rename “Non-interactive” to “Minimal UI”. (71178)
Create Block: Variants can define their own files
Creating templates for the @wordpress/create-block
package is not new, but when those templates support a lot of variants, the associated template files can get very complicated to manage. The latest version of the package now supports variants defining their own template files to override the main ones. This will effectively remove the need to wrap file contents in complicated mustache conditional checks and make managing the templates much easier.
You can read more about how to implement this in your templates in official documentation for variants.
Miscellaneous
- Private Form components now support async validation. (71184)
- A new
useServerSideRender
hook is now available. Using SSR is a little on the controversial side with some developers, but George Mamadashvili has a great comment on why this is still a valid use case in certain scenarios.
AI
The Core AI team has been hard at work this month. Along with the v0.1.1 release of the Abilities API, the PHP AI Client saw its first stable release with version 0.1.0. To demonstrate both of those libraries, Felix Arntz has released an AI Chatbot demo on GitHub. To top it off, the WordPress MCP adapter now officially supports Cursor.
They are still hard at work on a client-side library for the Abilities API and are looking for help with testing.
Playground
Get your Playground Contributor badge
If you’ve contributed to the work being done on WordPress Playground, you can now request a contributor badge. Head over to the Requesting a Profile Badge page on the Playground documentation site for more information and the steps to follow. While you’re there, check out the newly updated landing page for Playground. There you can learn more about the project and try out blueprints.
Playground CLI and Query API updates
The Query API now supports installing multiple themes and plugins by repeating the theme
or plugin
parameter in the URL string.
http://playground.wordpress.net/?theme=acai&theme=skincare-brand
Two new flags have been added to the Playground CLI:
--site-url
will set a custom URL for the local environment--auto-mount
allows users to specify the folder where the auto-mount will be applied
PHP prototyping in the browser
Adam Zieliński created a PHP Playground for developers to prototype PHP code directly in the browser.
General Updates
XDebug Bridge, an experimental feature that allows developers to debug WordPress playground on Chrome, has received several improvements, such as highlighting the debugged code and better connection with DevTools. Have a look at the following issues to dig into the details:
- Fetch all array keys when inspecting an array (#2409)
- List additional ASYNCIFY_ONLY functions to prevent unreachable crashes when using Devtools (#2454)
- Load files in Devtools before running PHP with Xdebug enabled (#2527)
- Highlight syntax of php scripts from mime type in Devtools (#2566)
- Fix create hash error in xdebug bridge (#2612)
PHP WASM, php.cli() is exposed for being used by PHP WASM, and has support for intl
, a dynamic extension for internationalization.
Themes
Date block supports custom dates and block bindings
The Date block has seen some major upgrades. In addition to supporting custom dates, the existing variations for Post Date and Last Modified Date have been updated to use Block Bindings. To enable this change, a new binding source named core/post-data
was created, which now exposes the publish date as date
and the last modified date as modified
for a given post.
New Query Loop Title block variation
The new Post Type Label variation allows users to display the post type of current item being shown inside a Query Loop block. This is particularly useful for displaying the post type name when building custom post type archive templates.
Early look at template duplication and active templates
There is some exploratory work being done on the concept of having a set of active templates and allowing templates to be duplicated. There is a lot of unpack in the issue but theme authors should have a look and provide feedback at this early stage.
Theme.json supports border radius presets
It’s now possible to define border radius presets in the theme.json
for your theme. Test this out using the latest version of Gutenberg and adding this following to the settings
property of your theme.json
file:
"border": {
"radiusSizes": [
{
"name": "Small",
"slug": "small",
"size": "2px"
},
{
"name": "Medium",
"slug": "medium",
"size": "4px"
},
{
"name": "Large",
"slug": "large",
"size": "6px"
}
]
}
Various theme related bug fixes
- Elements: Support unitless value in CSS custom properties. (#70704)
- Post Excerpts Block: Fix “read more” theme override. (#71179)
- Fields Components: Add missing style resets for fieldset elements. (#71217)
- Cover Block: Fix placeholder interaction in contentOnly mode. (#70157)
Resources and News
This month, the Developer Blog published three new articles you won’t want to miss.
First up, Justin Tadlock walks you through how to register your own social media icons—perfect prep for when this feature lands in WordPress 6.9.
The ever-prolific Troy Chaplin released not one but two in-depth articles on plugin development:
- Implementing Namespaces and Coding Standards in WordPress Plugin Development – a practical guide for writing clean, organized, and scalable code.
- Refactoring the Multi-Block Plugin: Build Smarter, Register Cleaner, Scale Easier – a continuation of his earlier article How to Build a Multi-Block Plugin, this piece dives deeper into optimizing your plugin architecture.
The Developer Blog is always looking for new contributors! If you’re passionate about sharing your WordPress knowledge, consider joining us. It’s a rewarding way to give back to the community.
Props to @psykro, @fellyph, @greenshady and @areziaal for contributing to and/or providing feedback on this article.
Leave a Reply