Happy holidays, extenders! We’re closing in on a full year of these developer-focused monthly updates, and I am happy with the feedback we’ve received over the last 11 months (we launched the first edition of What’s new for developers? in February 2023).
In this final edition of this monthly roundup for 2023, well…it’s more of the same—news of experiments, enhancements, bug fixes, and other things you should know about as an extender building atop WordPress.
As an aside, take some time to relax this holiday season, perhaps even spending some time away from the keyboard. WordPress will still be here if you take a day or two with family or friends.
For now, let’s jump into the latest updates one last time this year.
As usual, make sure that you’re testing any code changes listed below against WordPress trunk and the latest version of the Gutenberg plugin.
Table of Contents
Highlights
Roadmap to 6.5 published
An early version of the roadmap to 6.5 is now available on the Make Core blog. It lists the projects that are slated for the next WordPress release in March 2024. The article describes in short the enhancements and new features planned and provides links to the tracking tickets, so you can follow along on the development process.
The Font Library is on top of the list, as are other design tools and features for the Site Editor like revisions enhancements, Navigation block for mobile, patterns, and more support for Classic themes. For plugin developers, the new Data Views and APIs for Interactivity, Custom Fields, and Block Binding might be of great interest. The article also mentions the work on a plugin and theme roll back after automatic updates, dependency management, PHP compatibility, and overall performance improvements.
Plugin Directory Live preview available for opt-in
After an unsuccessful launch of plugin previews in September, contributors took feedback from the plugin development community and have relaunched the feature, albeit in a limited testing state.
If you have a plugin in the directory, you can now begin testing the live preview system. There is a two-stage opt-in process. The first step was meant to let you test the preview privately before enabling it for the public in the second step.
This week, the feature was taken live. Should a plugin developer opt-in into the new feature, users can preview a plugin’s functionality via WordPress playground instance.
Block gap support for the Quote block
Gutenberg 17.1 added support for blockGap
to the Quote block. This lets you control the spacing between nested elements and blocks.
This was labeled as an enhancement in the ticket, but it was more of a bug for anyone building themes. Previously, you had to fix the spacing for Quote blocks with custom CSS so that it matched your overall spacing scheme. Be sure to remove any CSS you’ve added to test this change.
Block-focused Theme Handbook chapters
Over the last couple of months, several new chapters have been added to the WordPress Theme Handbook, each with a focus on modern block theming:
These new chapters are a part of a larger project to overhaul the Theme Handbook. The project still needs more contributors, and you can get involved by picking up a topic from the GitHub tracking ticket.
Plugins and tools
Updates to Data Views experiment
While it is not currently something that needs your full attention, you should keep an eye on the admin data views experiment. To test the latest changes, you must enable the New admin views option via the Gutenberg > Experiments admin screen.
Contributors have submitted dozens of changes over the past month, bringing the feature one step closer to a reality for all WordPress users. To keep updated with each change, follow the Data Views tickets on GitHub. Development is currently moving too fast to cover them all in this post.
Tabs component updates
The new Tabs
component, which replaced the previous TabsPanel
in Gutenberg 16.9, has received a couple of updates since its introduction:
- Each of the subcomponents now accept full HTML element props.
- Several areas of cleanup and improvements.
Interactivity API updates
Gutenberg 17.2 incorporates a new store()
API for the Interactivity API and it will now be served as a native module. If you have a previous implementation with the Interactivity API, you should check out the updated docs and migration guide to learn more.
New selectors to fetch entity revisions
Gutenberg 17.2 introduced the following two new functions to the Core Data API for fetching post revisions of post types that support revisions:
HTML API adds support for container elements
The HTML API has been updated to add support for container elements, such as article
, blockquote
, details
, summary
, and more. This enhancement to the HTML Processor will be available in WordPress 6.5.
Standardized default submit_button() values
As part of the ongoing effort to standardize functions across the WordPress codebase, the default values for the parameters of the submit_button()
function have been changed from null to an empty string to match the parameters of get_submit_button()
which is wrapped by submit_button()
.
Serialized template content exposed to filters in Block Hooks API
Introduced in WordPress 6.4, the Block Hooks API exposes a filter (hooked_block_types
) that allows you to automatically insert blocks relative to instances of other block types. The filter includes a $context
argument, among others.
If the filter was called on a block that’s part of a template or template part, $context is set to the corresponding WP_Block_Template
object. Previously, this object’s $context
was not exposed to the filter. This issue was patched in WordPress 6.4.2.
External library updates
PHPMailer and getID3 have been updated to their latest versions (6.9.1 and 1.9.23 respectively) to provide better support for newer versions of PHP and to take advantage of the various bug fixes and new features they provide.
Additionally, some internal Javascript has been created to remove the dependency on the downloadjs package when exporting and downloading theme files.
Updates to the experimental DropdownMenu V2 component
There have been a number of tweaks to the new version of the DropdownMenu
component, including adding support for rendering in the legacy popover slot. Keep in mind that this component is still marked as experimental and may change in the future.
Raising the minimum version of MySQL
In WordPress 6.5, the minimum required version of MySQL will be raised from 5.0 to 5.5.5. (as of 57173). Using 5.5.5
also ensures two things:
- The presence of
utf8mb4
support (added in MySQL 5.5.3) InnoDB
is the default storage engine instead ofMyISAM
(added in 5.5.5).
Themes
Disallow custom content size controls
Gutenberg 17.2 introduced a new theme.json
layout setting for disabling custom content and wide sizes in the UI. This will give you more control over what your users or clients can do with design tools. The new layout.allowCustomContentAndWideSize
setting can set globally or at the block level:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 2,
"settings": {
"layout": {
"allowCustomContentAndWideSize": false
}
}
}
Directory patterns shown in Patterns library
You can define patterns in theme.json
via the patterns
property, which are then shown in the inserter for users. In Gutenberg 17.1, these same patterns will appear in the Patterns library in the Site Editor.
Singular Query Loop handling in WordPress 6.4
WordPress 6.4 changed the way the Query Loop works for single posts, pages, and other custom post types, at least when you’re running a block theme. Because block themes do not add the loop themselves, WordPress will automatically handle the loop under the hood.
Layout classes added to legacy Group inner container
When a classic theme enables support for appearance-tools
but does not have a theme.json
file, an inner container is added to Group blocks. In Gutenberg 17.2, this inner container will now have layout classes applied to it.
Nav Link block renaming support disabled
Aside from a few special cases, most blocks can be renamed in the UI or via block markup. Gutenberg 17.2 adds the Nav Link block to the list of those that cannot be renamed.
Styled scrollbars for Gallery block captions
Image blocks nested inside of Gallery blocks now have transparently styled scrollbars. This addresses a longstanding design issue with long captions that didn’t fit well into the small space allotted to them.
This change adds new CSS with high specificity, targeting .wp-block-gallery.has-nested-images figure.wp-block-image figcaption
. If you’ve added custom scrollbar handling in your themes, be sure to test that this new code does not break your custom styles.
HTML rendered in post titles
WordPress has long supported HTML in post titles, but the block editor has not rendered that HTML visually. This meant there was no way for you to perceive such markup. An update in Gutenberg 17.2 allows you to visualize the markup in Visual Mode and see the raw markup in Code Mode.
This update does not let you edit the post title’s HTML in Visual Mode, but there is a followup ticket requesting a Rich Text toolbar to edit the markup.
Notable bug fixes
- Embed blocks are now correctly processed when used within a pattern instead of simply outputting a URL.
- The accessibility markup used for enhanced pagination now appears regardless of the Query Loop wrapping element.
- Separate button misalignment and close button position issues were resolved when using Lightbox.
- Linked Post Featured Image blocks are wrapped in an
<a>
tag, ensuring consistency between the editor and front-end for your designs. - The CSS specificity of the Read More block’s
text-decoration
property is now reduced, allowing you to override it viatheme.json
.
Events and resources
Learn WP
Three new tutorials landed over the past month:
- How to create a menu with the navigation block
- Testing your products for PHP version compatibility
- Create Block Theme Improvements
Developer Hours and Hallway Hangouts
There were two Developer Hours and Hallway Hangouts sessions in November:
- Developer Hours: How to extend Core WordPress blocks
- Hallway Hangout: Triage Gutenberg Extensibility Issues
Developer Blog
Four new posts were published on the Developer Blog in the past month:
- Getting started with the Command Palette API
- A great read—four simple steps to your best body copy ever
- Styles, patterns, and more with the Details block
- A walk-through tutorial on using Create Block Theme plugin
Props to @bph, @juanmaguitar, @welcher, and @ndiego for co-writing this month’s post. WordPress notebook photo by @wpfanyi.
Leave a Reply