The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
WordPress 7.2 is set to be released in early December 2026. Notes leads the way with the ability to add suggestions and emoji reactions, offering more direct and interactive collaboration. Dedicated security efforts revolve around a “sudo mode” that gates sensitive actions behind re-authentication, a Secrets APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. that offers a first-class way to store credentials safely, and a round of hardening for Application Passwords. Styling becomes more robust and predictable, with the ability to style form elements in Global Styles, expanded responsive styling and custom state support, and individual blocks that properly reflect global settings. Additions to the blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. library expand what’s possible with a new Description List block and the long-awaited Table of Contents block. The everyday experience improves with fixes for writing annoyances, clearer error messages with a copy button, and refinements to the media inserter and modal. The adminadmin(and super admin) bar and menu get a fresh set of icons, swapping dashicons for SVGs that render more reliably and are announced properly to screen readers. An extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. Site Editor lets pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. authors register their own screens and settings for the first time. Responsive styling gains support for third-party blocks with custom controls, and DataViews and DataForms let third parties control which fields appear and which layouts are available for any entity. A new default theme called Ipsum ships with the release, offering an intentionally minimal blank canvas built for making your own.
As always, what’s shared here is being actively pursued, but doesn’t necessarily mean each will make it into the final release of WordPress 7.2.
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
While accessibility efforts run through nearly every area of this release as a matter of course, a few pieces of dedicated, high-effort work stand out for 7.2:
Improve admin notices accessibility to ensure they’re announced properly to assistive technologyAssistive technologyAssistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks.
https://en.wikipedia.org/wiki/Assistive_technology and easier to dismiss and navigate by keyboard.
The 7.1 cycle gave clear guidance that AI features must first demonstrate clear adoption and practical value before being considered for CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. As a result, the work below is being pursued in the AI plugin without a guarantee of landing in 7.2. If you’re keen to see these features graduate into Core, the best way to help is to use and test the AI plugin and share feedback.
Seamless MCP access: Let administrators enable MCP through the AI plugin with minimal setup, including installing the adapter and controlling which abilities are exposed.
Agent identity and delegation: Develop a model for agents to have auditable identities, appropriate permissions, and access that can be managed independently of human accounts.
Embeddings and semantic search: Build shared embedding support in the AI plugin, including generation, storage, and background synchronization, to power meaning-based search and responses grounded in site content.
Streaming AI responses: Add streaming support to the PHP AI Client so applications can display generated content as it arrives, while laying the groundwork for broader WordPress and hosting support.
Extensibility is the main priority with work underway to evolve the initial view config API work with view/form config registered on the server, plus registering fields and actions on the server. Real screens in the experience drive the direction of extensibility, from switching style revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. to data views to supporting the extensible site editor. As part of this, please help test DataForm editor inspector as the post inspector (featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts., excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox., status, date, author, template, etc.) are in the process of being replaced by a DataForm.
In line with defensive design best practices, this work aims to make error messages clearer and more diagnosable, and to add a copy button so an error is easier to search for or share.
Evolve Navigation editing in Site Editor sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.
Make the Extensible Site Editor Sidebar a more complete surface for common menu editing tasks, continuing the editing-experience improvements started in 7.1.
Work continues on a new, extensible foundation for the Site Editor, built on the wordpress/boot routing package and already nearing feature parity with today’s editor. Beyond a rebuild, it opens the Site Editor up to third parties for the first time, with a server-side view-config endpoint that lets plugin authors register their own screens and settings instead of shipping custom, one-off APIs. Other in-flight projects, including navigation editing, are already building on this foundation rather than duplicating it.
After landing the omnibar in 7.1 to provide more consistency across various editing interfaces, more iterations are planned for 7.2, including replacing dashicons with SVG Icons, improving the command palette, continued accessibility review, and continued design iterations.
“On This Day” widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.
After being punted from WordPress 7.1, another attempt is underway to land a new “On This Day” widget that resurfaces past content, a popular feature across many different platforms.
A new block adds native semantic description list support to the block library through three static blocks: core/description-list serializes to <dl>, core/description-term serializes to <dt>, and core/description-detail serializes to <dd>. This follows the same parent and innerblocks approach as other composite blocks like Tabs and List, and makes it much easier to build glossaries, metadata, specifications, and other term/description relationships.
Complete the work of adding keyword search to the Icon Block. Currently, only the label is searched. Keyword search, for example, allows for the “menu” icon to be found by typing in “hamburger”, “navigation”, or “list”.
The Interactivity API provides a standard way for developers to add interactions to the front end of their blocks and two main initiatives are underway to add to the power of the Interactivity API.
“The data-wp-htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. directive will add a missing primitive: today there is no supported way to render markup from the store inside an interactive region and have the result reflected reactively. This initial version will ship a directive that renders only values explicitly trusted by application code through asDangerousHTML(), leaving sanitized plain strings for a later version.
The router work gives extenders a supported, reactive way to observe client-side navigations and know what initiated them, replacing the deprecated state.navigation.hasStarted/hasFinished pair.”
ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org 19 upgrade
Work continues to make GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ fully support React 19, with types, ecosystem dependencies, and rendering fixes largely landed. This is unlikely to fully land for WordPress 7.2 but is being noted here for broader awareness for when it does in a future release.
Take the long-experimental Table of Contents block stable by moving it to server-side dynamic rendering, so the editor and front end share one source of truth for headings.
Collaborative editing is intentionally not on the roadmap for 7.2, even as work continues alongside this release cycle. As in 7.1, it’s clear more time is needed for a number of architectural decisions, and rather than list it here only to pull it later, it’s being left off entirely. You can follow the work in this iteration issue, and everyone is encouraged to join the collaborative editing outreach effort helping stabilize the feature.
Notes iteration: suggestions, emojis, and more
Notes (aka block commenting) have a range of slated improvements that aim to make Notes more discoverable, more powerful, and easier to use. Suggestion mode, where one can leave suggested edits to be accepted or rejected as notes, is the centerpiece of this cycle as it marks a huge step forward in collaborating more directly with others. Other planned enhancements include emoji reaction support and a dedicated shortcut in the block toolbar for efficiently adding notes.
Ipsum is the proposal for the next default theme, planned to be bundled in WordPress 7.2. It is an intentionally minimal blogblog(versus network, site) theme that centers on a blank canvas to make your own, with built-in room for creativity.
A broad quality-of-life sweep fixing dozens of small but persistent writing-flow, selection, paste, drag-and-drop, and mobile annoyances in the block editor. This is part of a continual focus to make writing great in WordPress.
Forms and their elements, like buttons or text input fields, are a common use case for websites. The work for 7.2 aims to give users the ability to style common form elements consistently in Global Styles, without writing custom CSSCSSCascading Style Sheets. or editing theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. by hand. Currently, the button, textInput, and select elements are already supported in theme.json so this release is focused on adding an interface for the supported items, adding the missing label element, and improving support for interactive input states.
Work continues on new block supports and design tools (backgrounds, dimensions, position), including continuing the consolidation of ad hoc block controls in favor of more consistent supports. All of this work makes the foundation of block supports more robust and predictable to use.
After responsive styling was introduced in 7.1, this cycle focuses on expanding which controls support states, adding a public API for third party blocks with custom controls to work with responsive styling, and refining the experience when switching into and out of the responsive styling mode.
Custom states work allows users to style the “active” item in interactive blocks, like the current page in a navigation menuNavigation MenuA theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site., directly from the editor. The focus of this release is on adding a -current custom state for Navigation Link and the Tabs block, as well as adding color, border, and spacing support to the Navigation Link block. Adding these additional supports means extra control and options for styling.
Currently, any block that has options set in Global Styles don’t reflect those values in their settings. Work is underway to change that so, if a paragraph block is set to red globally, when a user opens the block settings for a paragraph block the red color is clearly shown. Reflecting these global values helps clarify for users when they’ve overridden a global option and where/when to change options depending on what they want to do. Various design decisions need to be made beyond this including whether to show an indication that a global option has been overridden and how best to offer a clear way to reset a change to what’s set globally.
As a reminder, client-side media provides a progressive enhancement to the current server-based approach to media processing and delivers more consistent media processing across WordPress installs, regardless of where a site is hosted. For this cycle, the focus is on maturing browser-based media processing by hardening the upload pipeline, expanding format support, and completing performance work.
This work focuses on a few pieces: a redesign of the media inserter with a focus on a more scalable experience for browsing and adding images for sites with large media libraries, expanding sources for the dynamic gallery block variation, and bringing sorting options to the static gallery block.
After landing in WordPress 7.1, for this iteration, the focus is on a better experience for attached media and tracking the relationship between originals and cropped derivatives. For the latter, this work aims to establish a more formal lineage tracking between cropped image attachments and their originals, addressing a current gap where each crop spins up an untracked, standalone attachment that risks cluttering the media library over time.
This work covers security hardening and UX refinements for Application Passwords, from better local/HTTPSHTTPSHTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. environment detection to user notifications and safer default role handling. Below are a prioritized list of tasks:
Work continues to harden how WordPress parses and processes HTML, building on the HTML API to make handling of markup safer and more reliable throughout Core.
Secrets API
WordPress has no first-class way to store a credential and a recent proposal outlines a Secrets API to solve this problem, along with WP-CLIWP-CLIWP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/https://make.wordpress.org/cli/ support, with a proper UIUIUser interface planned for a future release.
Initial work is starting on the possible introduction of a “sudo mode” feature, which can gate highly privileged administrative actions behind a re-authentication prompt even when you’re already logged in. Further details, a proposal, and a call for collaboration will be published shortly and this post will be updated with the corresponding links.
Open to contributors
The above efforts have dedicated folks working on them for the release and folks are welcome to join efforts. The following items don’t have dedicated folks working on them, are high impact to work on, and are up for grabs. It’s not a comprehensive list and it’s meant to be a starting point as I’ve gotten feedback that it’s hard to always know where to begin. Please comment on the issues themselves and below if you plan to take one on:
Add native date/time controls to the Publish box — PR #13050.
Rework the Custom Fields editing flow — PR #12348.
Add a toggle to control metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. reordering — PR #12627.
Fix the visuals/CSS on dashboard metabox controls — PR #12339.
Close the remaining UX gaps in the gallery lightbox experience from earlier lightbox/carousel work — Issue #51132.
Improve homepage setup (showing latest posts vs. a static page) to reduce a major source of user pain — Issue #63783.
Introduce levels of block validation so the editor can recover content instead of showing a “this block is broken” dead-end — Issue #21703.
Formalize how block attributes are organized and surfaced in the editor sidebar — Issue #73845.
Add the ability for users to create their own named block style variations in Global Styles — Issue #49602.
Show the Style Book for Typography, Colors and Blocks, including block states — Issue #83065.
Earlier this year, real-time collaboration (RTC) was removed from WordPress 7.0. Since then, I, @alecgeatches, @dmsnell, and others have been working through the valid concerns that led to that decision. We think these concerns call for a change in direction: Collaboration should be server-aware, with WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. in control.
How collaboration works today
The current RTC experiment in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ merges edits only in the browser. Each browser holds a copy of the post in a CRDT document. Peers exchange updates with each other until every copy matches. The changes exist only in browser memory until someone saves.
This design mirrors how the blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor itself works: The editor does its work in the browser and hands WordPress the finished post when someone saves. A client-side approach to collaboration keeps changes to Core relatively small and makes the feature more responsive. But it leaves unsolved problems:
Problem 1: The server can’t say who wrote what.
The server has no ability to attribute individual edits during a collaborative session. Even if the client provides attribution metadata, the server must either trust it blindly or assume that all of the content belongs to the person who saves. As a result, security checks can be sidestepped.
Example: Content laundering. An author (who is not allowed to publish raw HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.) and an adminadmin(and super admin) are collaborating on the same post. The author adds a block containing a <script>tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) and it is synced to administrator’s editor. The administrator, working in a different section of the post, fixes a typo and clicks Save. The post is updated under the admin’s capabilitiescapabilityA capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability)., including the script that the admin never looked at.
Problem 2: The server cannot participate.
Collaboration is only open to browser clients. Updates that flow through the server—via the REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”)
https://developer.wordpress.org/rest-api/ or WP-CLIWP-CLIWP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/https://make.wordpress.org/cli/—cannot be shared with peers and result in an “all-or-nothing” update.
Example: A scheduled integration. A script fetches a post at 09:00 and writes back its modified copy at 09:03. It does not know that two editors opened the post at 09:01 and began revising it. The script effectively erases their work.
Browsers can be told when a change like this occurs. But the server cannot tell them what changed, only that something changed. The editor must then choose to adopt or toss the newer server version in its entirety. Either way, work is lost.
Problem 3: The server cannot mediate.
When RTC is working optimally, peers stay in close sync. However, if peers drift from each other, then the experience can suffer and content loss can occur.
Example: A dropped connection. Alice and Bob are editing together when Bob’s networknetwork(versus site, blog) connection drops. Alice keeps editing, saves, and closes her tab. Later, Bob’s connection comes back. Before his editor can catch up on Alice’s changes, Bob clicks Save and erases her work.
Example: Overlapping edits on a slow connection. Alice and Bob start editing a post at about the same time, targeting the same paragraph. As their work syncs to each other, the resulting merge is confusing and disorienting.
A server-aware approach
The fix is to route collaboration through WordPress and let the server participate. Collaborators can no longer directly exchange updates with each other. Instead, they must send updates to WordPress. For each update, WordPress records who made the change, checks that the user is authorized to make it, merges it with everyone else’s changes, and stores the result.
WordPress then responds with changes from other peers that the current collaborator lacks. Or, if the change cannot be merged cleanly because of an update from a script or another peer, it can raise a conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. for the collaborator to review.
By moving the “sync engine” to the server, we make sure that WordPress retains authority over the content no matter who or what is collaborating.
Performance
Moving additional work to the server means that even more attention must be paid to server load and performance. Frequent polling carries a larger cost and becomes a less realistic path to effective collaboration on lower-resourced hosts.
Instead, we must improve the experience of collaboration when peers exchange updates less frequently. At the same time, we can offer alternative transports that offer an enhanced experience for hosts that are willing to invest additional resources.
No matter what, we must build on the community performance testing from May to provide a clear calculation of how much this new approach costs.
Exploration and feedback
Our exploration is in its early stages and not ready for Core inclusion today. However, we have implemented three candidate server-aware sync engines that solve the problems outlined above:
Yjs–server uses a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher implementation of Yjs to merge updates. The server holds a CRDT document and shares it with clients.
Distributed Editing (DE-RTC) employs a three-way merge between the latest saved version, the editor’s proposed version, and the base version that the editor started from (if it differs from the latest saved version). Sync happens on save (or autosave), not when changes occur.
Intent log is an operational transform engine that sends short semantic descriptions of what changed, such as “move this block.” The server holds an ordered log of these updates, which can be replayed by clients.
We are developing these sync engines (as well as a variety of transports) in the gutenberg-sync-engines repository. While it is a functional WordPress pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party., it is intended as an exploratory tool to help us find the best path forward. We encourage you to try it, give feedback, and contribute.
As we move closer to choosing our preferred sync engine, we will share more about the engine internals and our methodology for measuring performance. Our eventual goal is to package our preferred sync engine in a feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins for wider use and testing.
Comments here are welcome, as is discussion in the #feature-realtime-collaboration channel in SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
The “Post” (or “Page”) tab of the editor’s Settings sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. is being rebuilt on top of DataForm, the same form that Quick Edit uses in the Site Editor. It’s available as a GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ experiment and it’s ready for testing, mostly by pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. developers whose code extends that part of the editor. If you’re a site owner using plugins that add things there, there is a flow for you too.
What is it?
With the “Editor Inspector: Use DataForm” experiment on, in the blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor the classic summary panels of the post inspector (featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts., excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox., status, date, author, template, etc.) are replaced by a DataForm, for every post type that uses the block editor. The settings follow what each post type supports.
The same form definition is also used to build the Quick Edit interface in the Site Editor.
For users, a cohesive experience: the inspector in the post editor and Quick Edit in the Site Editor show the same information and should look and behave the same, instead of drifting apart.
Quick Edit interface
For developers, APIs that work across both screens: controlling which settings show (this is one example, and it’s possible today with the view config filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.), and adding your own fields through the fields APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways., so they show up in the inspector and in Quick Edit (#61084, #74865). The fields API is aimed for 7.2.
How to test
Install Gutenberg 24.0 or newer on a test site and turn on “Editor Inspector: Use DataForm” under Settings > Gutenberg. Then open a post and compare the Post tab with the experiment on and off. It’s always better to test in trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. because it’s the most current version, but Gutenberg 24.0 is acceptable.
Note: Gutenberg trunk needs WordPress 7.0 or later, the 24.0 release also works on 6.9. Either way, please mention which version you tested.
If you develop a plugin, your own dev environment with Gutenberg installed is all you need.
For a quick look without setting anything up there is WordPress Playground, with the experiment already on: Gutenberg 24.0, trunk or the PRs for editor.MediaUpload and editor.PostFeaturedImage (more on those below). To test your own plugin there, install it from the Plugins screen as usual, or upload its zip.
What to expect
PluginDocumentSettingPanel, PluginPrePublishPanel, PluginPostPublishPanel, PluginSidebar, PluginPostStatusInfo fills and removeEditorPanel keep working.
The PluginPostExcerpt slot is not ported. It’s a deprecated API and we’re considering not adding it at all, so whatever you render there should move to a PluginDocumentSettingPanel.
The editor.PostFeaturedImage filter doesn’t work yet. There is a PR (#83133) which adds it, though not in Quick Edit. Anything targeting the classic panels’ CSSCSSCascading Style Sheets. class names or markup won’t be ported.
The featured image picker doesn’t go through the editor.MediaUpload filter yet. There is an exploratory PR which adds that, but it’s on hold for now (see why).
Hiding a default setting or changing where its label sits is already possible with the server side view config filter, get_entity_view_config_posttype_post for posts (see docs). There is an example in this GitHub issue.
Suggested testing flows
You don’t have to follow these exactly, they’re mostly here to give you ideas.
What your plugin adds to the inspector
Open a post with your plugin active. Is everything you add to or change in the Post tab (panels, fills, filters, styles, scripts) still there, and does it still work?
Your custom post types
If you register post types that use the block editor, open one of them. You should only see the settings the post type supports (for example no excerpt setting without excerpt support). Please report anything missing or extra there.
Other user roles
Log in as an editor, author or contributor and open a post. The settings should match what the role can do, like in the classic inspector (an author doesn’t get the Author setting, for example), and saving should still work. Some known issues have already be fixed in trunk (#82844, #82857, #82858).
The editor.MediaUpload and editor.PostFeaturedImage filters
The featured image picker doesn’t go through the editor.MediaUpload filter yet. If your plugin replaces the media picker through editor.MediaUpload, you should test against this PR that adds it. You can try it in Playground or with the PR applied, both in the post editor and in Quick Edit in the Site Editor, and share what you find on the PR.
The same goes for editor.PostFeaturedImage: this PR adds it (not in Quick Edit), and you can try it in Playground too.
Site owners
You don’t need to be a developer for this one. If you use plugins that add things to the Post or Page tab (SEO or social fields, custom panels, that kind of thing), enable the experiment on a test site or in Playground and check they are still there. If something is missing, please share the plugin name and version, and a screenshot with the experiment on and off.
Sharing your feedback
Comments on this post are fine, but the best place is the GitHub issue for this call for testing. Share what you extend, what changed, and whether you can adapt on your side or need something from Gutenberg. “Checked X, nothing changed” is useful too. Feedback about the inspector itself (layout, labels, missing controls) is welcome on the tracking issue, where the open design questions are discussed.
There is no deadline, but the sooner the better, since this is aimed for 7.2.
Out of scope
The goal here is compatibility, what happens to the things plugins add to the inspector. A few things are handled separately:
Block editing, taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. panels and metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. boxes. The experiment doesn’t touch them.
Some design questions are still open, like which settings should be regular fields instead of panels, or the Reset button of the Date setting, which isn’t there for now and may come back in a follow up. These live in the tracking issue.
Thanks in advance for testing! Props to @mcsf for reviewing this post.
Ipsum is the proposal for the next default theme, planned to be bundled in WordPress 7.2. It is an intentionally minimal blogblog(versus network, site) theme that centers on a blank canvas to make your own, with built-in room for creativity. The approach for this theme also marks a move away from year-based naming, based on direction from @matt. Going forward, default themes will have their own names and change when the design calls for it, not when the calendar does. The road to 7.2 is short, so we’re opening Ipsum for testing now—the sooner we get feedback, the more it will shape the release.
How we got here
Months ago, we began to develop the default theme, building real demo pages directly in the Editor rather than in Figma mockups. That work started as Mētis, a theme for writers, makers, and thinkers, designed to showcase the design possibilities GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ now offers. After reviewing the direction with Matt, we shifted: the default theme bundled with WordPress should be the simplest possible starting point, and the more expressive design can still stand.
There’s a principle behind this choice: build in public, and ship. Mētis is a powerful theme that’s diverse and opinionated, with lots of ways to stretch what’s there. However, Matt gave clear direction to go with a simpler blank canvas style approach that could appeal more quickly to more people to make their own. That’s why we picked a blank canvas blog design and are sharing it with the public for suggestions, instead of making Mētis the one. Real artists ship.
Mētis remains a separate theme that won’t ship with this release. Our new flagship theme will have its own post as soon as it’s ready to download and test.
Ipsum is a blank canvas built around the blogging experience, our proposal for what this year’s default theme should be. Named after lorem ipsum, the placeholder that fills a page until real content arrives, it is composed enough to stand on its own and to be transformed the moment people start writing.
It keeps the page quiet: dotted underlines from an editor’s pencil, a handful of typesets, and style variations that re-ink the whole page, images included. Every combination passes WCAGWCAGWCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) https://www.w3.org/TR/WCAG21/. AA. Headers, heroes, and sidebars are there when you reach for them, but remain invisible when you just want to write.
What’s available today reflects the design work; development review is still ahead. The window before 7.2 is tight, so this is a focused ask: try it and tell us what breaks and what’s missing. We’ll fold in what we can before the release; what we can’t will shape the updates that follow, as it does for every default theme.
As part of the 7.2 release, Carolina Nymark (@poena), Maggie Cabrera (@onemaggie), and Juanfra Aldasoro (@juanfra) are leading development, while Henrique Iamarino (@iamarinoh) is leading design and theme building. The current build reflects the design work; the formal development review comes next, folding in what we hear from you along the way—we look forward to your involvement throughout the process.
Learn more
For information about previous default themes, read the following posts:
Here are a few resources if you’re interested in learning more about BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Themes and the Site Editor:
The live meeting will focus on the discussion for upcoming releases, and have an open floor section.
The various curated agenda sections below refer to additional items. If you have ticketticketCreated for both bug reports and feature development on the bug tracker. requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.
The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion.
Open floor 🎙️
Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.
Please include details of tickets / PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Editor.
This version extends visual revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. to include the post title, gives the Gallery blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. a grid layout with per-breakpoint controls, and lets a site title scale to the width it is given.
Visual revisions now cover the post title
Visual revisions have been growing over the last few releases, and until now the post title sat outside them. In 24.0, the title participates like any other piece of content, including displaying change diffs directly in the post title (#82536, #82586).
Seeing it in the same view as body changes removes the need to guess when a rename happened.
A more adaptable Gallery block
The Gallery block gains a Grid variation that can be switched on from the block inspector, replacing the default non-editable flex layout with a fully customizable grid (#81909).
“Column count” and “Crop images to fit” can now also be set per breakpoint through viewport states. A gallery can show four columns on a wide screen and two on a tablet without any custom CSSCSSCascading Style Sheets. (#82003).
Site titles that fill their available space
The Site Title block now supports fit-text (#82074). Toggle it on from the ellipsis menu in the typography panel and the title scales to the full width available to it, rather than being sized in points and left to wrap or fall short.
Other notable highlights
A redrawn icon set. Nearly 100 icons have been redrawn from a mix of filled and outlined shapes into a single, consistently stroke-based visual language (78812, 78808, 82338).
Tab indents lists. In the List block, Tab and Shift+Tab now indent and outdent a fully selected list item, and work across a multi-item selection instead of only at the caret (82460, 82411).
Background images from a URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. Background image support can now accept an image URL, rather than requiring an entry in the Media Library (82230).
Non-breaking spaces are visible. The format library now visualizes non-breaking spaces, so a character that silently changes wrapping is no longer invisible while editing (74040).
Changelog
Enhancements
Components
Add defaultShown, onShownChange to ToolsPanelItem. (78010)
Border Box Control: Try moving the unlink button to the label row, and rename the panel to Borders. (82163)
DataForm: Add a showPlaceholderIfEmpty option to the panel layout. (82527)
DataForm: Communicate the timezone in the datetime control. (82291)
Editor: Migrate post-card-panel Badge to UI Badge. (82500)
Global Styles UI: Migrate revisions Active Badge to UI Badge. (82560)
Icons: Redraw 35 prominent icons with consistent stroke widths. (78808)
Icons: Redraw 64 icons to be stroke-based. (78812)
Menu: Stabilize portaled iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.. (82092)
Menu: Use Text for item labels and descriptions. (82237)
SearchableSelect: Add form primitive to wordpress/ui. (80961)
Storybook: Persist sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. theme in URL. (82111)
Support isAny and isNonefilterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. operators for numeric fields. (77942)
Tab Panel: Show focus with outline instead of legacy box-shadow ring. (82421)
Validated form controls: Use design token for invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. focus rings. (82410)
List: Indent and outdent a fully selected list item with Tab. (82460)
List: Indent and outdent multi-selected items with Tab. (82411)
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop: Rename the “Keyword” filter to “Search terms” and add help text. (82387)
Query: Replace the “Reload full page enabled” modal with a snackbar notice. (82246)
feat: Introduce ‘Add Media’ in the block controls for media-text block. (82420)
Post Editor
Autocompleters: Consider email address context in user mention. (47249)
CSS Styling: Represent focus with outline for list view component. (82129)
DataViews: Append an ellipsis to action labels that open a dialog. (81994)
Editor: Refactor the Options menu to use the Menu component. (81564)
Editor: Refactor the View menu to use the Menu component. (82321)
Editor: Render change diffs in the post title in revisions. (82586)
Editor: Show revision data in Post Title component. (82536)
Media: Attach unattached media to the current post on save/publish. (81977)
Menu: Align selection indicators and prefix icons with item labels. (82346)
Post slug: Prefer server sanitization in the editor. (78135)
Try: Add “reading settings” link to Front Page template. (81987)
Site Editor
Add New Template: Show the design system focus ring instead of legacy box-shadow rings. (82164)
Add a root error boundary to prevent a blank screen. (82486)
Site editor v2: Identity takes its form from the view configuration endpoint. (82692)
Site editor v2: Navigation takes view configuration from endpoint. (82138)
Site editor v2: Pages take view configuration from endpoint. (82140)
Site editor v2: Patterns take view configuration from endpoint. (82458)
Site editor v2: Template parts take view configuration from endpoint. (82457)
Site editor v2: Templates take view configuration from endpoint. (82456)
Site editor v2: Use the canonical template fields in the templates list. (82666)
Site editor v2: Use the canonical wp_block fields in the patterns list. (82672)
Block Editor
Background image: Support setting the image from a URL. (82230)
BlockPreview: Assert preview contents are inert. (82682)
Format library: Visualise non-breaking spaces. (74040)
List View: Disable block icon colors while the block is selected. (82498)
Show the block outline where the grab cursor shows. (81798)
Tab trap escape hatch: Leave/enter the canvas with Escape/Enter. (82314)
Dashboard
Site Health widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.: Route the body’s review link through the host. (82066)
Widget Dashboard: Add a Policy provider to govern what users may do. (81967)
Widget Dashboard: Enforce the policy on the staging layer for every instance operation. (82256)
Widget Dashboard: Govern Reset to default through the policy. (82255)
APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. fetch
Add unregister to remove a registered middleware. (82408)
Expose defaultFetchHandler so overrides can restore it. (82553)
api-fetch: Resolve to null for a 200 response with an empty body. (79325)
Accordion Panel: Reset padding-block when panel is hidden. (81782)
Fix categories block handling of invalid taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.. (82153)
Fix: Footnote IDs can start with a digit and break CSS selectors. (82398)
Fix: Tabs block: Anchor links in tab panels are not functional. (81744)
Gallery block: Fix ‘Crop images to fit’ broken in editor. (82318)
Gallery: Shorten “Use images attached to the post” button, add description. (82617)
Image block cropping: Sync image size and link destination settings. (82316)
List: Merge into the previous line on Backspace instead of outdenting. (82145)
List: Outdent an empty middle item without adding an item. (82011)
Navigation: Restore flex-grow on container when accessible label is present. (78447)
Query Loop: Fall back to post when the query has no postType. (82465)
Query: Don’t write excludeCurrent into blocks that never had it. (82147)
Block Editor
Columns: Fix appender drop zone visibility when dragging into empty column. (77852)
DOM: Exclude visibility-hidden elements from focusable results. (82574)
Fix auto-capitalization after Enter on iOSiOSThe operating system used on iPhones and iPads. Safari. (82475)
Fix editor link colour cascade order for nested blocks. (77833)
Fix: Responsive horizontal orientation does not override a vertical layout. (82364)
Fix: Retain focus and caret position after Backspace undo of a prefix block transform. (82116)
List View: Don’t focus the last Table cell on keyboard activation. (81964)
Rich text: Restore contenteditable on pointercancel. (82598)
Writing Flow: Bail out of Enter handling when no block is selected. (82424)
Post Editor
Editor: Deprecate the as prop of the pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. menu item components. (82319)
Editor: Derive post-only block list layout from the assigned template. (82599)
Editor: Store the finalize response as the attachment record. (81947)
Fields: Hide the slug field for posts without a permalink. (82341)
Media: Refuse a multi-file drop on a placeholder that takes one file. (82046)
Media: Stop claiming “Upload complete” when every upload failed. (81397)
MetaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. Boxes: Move meta box markup with moveBefore to keep classic editors alive. (82243)
Post URL: Translate the copy permalink button label. (82642)
wp-build
Build Package: Restore CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Boot layout compatibility. (82112)
Build: Fix regular CSS injection in Vitest Browser Mode. (82154)
Pages: Require authentication and a capabilitycapabilityA capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). to render generated standalone pages. (82254)
Data Layer
Core Data: Return a stable record for equivalent _fields queries. (82552)
Core Data: Scope revisionId to the entity it is provided for. (82517)
Media: Only blame the browser’s codecs when HEIC really cannot be decoded. (82265)
Media: Report server upload failures in plain language. (81735)
Site Editor
Boot, Site Editor: Seed content surfaces with default background color. (81646)
Fields: Remove unused custom sort from the author fields. (82559)
Global Styles
Global styles engine: Return a copy from getResolvedValue instead of mutating. (82278)
Resolve theme-relative background image URLs for display. (82242)
Env
wp-env: Fix Docker build errors with Debian Bullseye repositories. (82478)
Layout
Fix: Restore layout styles for block style variations. (82335)
Format library
Fix Edit as HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. crash with background-only highlight. (82215)
Views
useViewConfig: Don’t request the view configuration twice. (82141)
Dashboard
Widget Dashboard: Keep the plain anchor for an empty-string download. (82073)
Font Library
Keep CSS custom properties unquoted in font previews. (82010)
Fields
Fix pattern export filenames by normalizing special characters. (77033)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Workflow: Replace cmdk with the wordpress/ui Autocomplete primitive. (82504)
Components
Match the wordpress/ui disabled styles in form controls. (82454)
Tests: Skip pull requests that only change Storybook stories. (82459)
Themes
Theme JSONJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.: Avoid rebuilding identical block schemas during sanitization. (82203)
Block Supports: Bail early in state styles when a block has no style attribute. (81908)
Block Editor
Rich text: Resolve owned event listeners once instead of per subscriber. (80605)
Experiments
Editor assets endpoint: Prime the theme JSON resolver before capturing. (82134)
Post Editor
ExtensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. site editor: Add a revisions entry point to the Styles route. (82142)
Media Modal Experiment: Allow filtering by attached to the post, or unattached. (81974)
Block Fields Media: Handle ‘audio’ in chooseItemLabel. (82389)
Site Editor
Extensible site editor: Fall back to the raw title in edit route document titles. (82143)
Navigation Menus
Extensible Site Editor: Let menu items be added from the navigation screen. (82125)
Documentation
API Fetch: Rename defaultFetchHandler parameter to options. (82588)
Add recommended bulk suppressions configuration for ESLint VSCode. (82303)
Components: Add an Emotion-to-SCSS migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. skill and guide. (82567)
CI: Pin npm version in the private API check job. (82222)
CodeRabbit: Disable the review status comment. (82534)
CodeRabbit: Only review on request, keep PR descriptions untouched. (82448)
Docs: Align param tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) columns in lib/ docblocks. (81902)
Docs: Align param tag columns in phpunit/ docblocks. (81904)
Docs: Remove the blank line between param and return in test docblocks. (81907)
Packages: Exclude src from block-serialization-default-parser package. (77307)
Performance tests: Reuse the plugin an earlier trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. run already built. (82223)
Replace npm-run-all with native npm script chaining. (82166)
Reusable Blocks: Remove leftover merge conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. markers from the changelog. (82126)
list-reusable-blocks: Exclude src from published files. (77305)
CSS Styling: Cleanup focus outline override for grid component. (82337)
Migrate __experimentalText and __experimentalHeading to wordpress/ui Text in Inspector Popover HeaderHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (77449)
Migrate __experimentalText to wordpress/ui Text in Allowed Blocks Modal. (78119)
Migrate __experimentalText to wordpress/ui Text in Block switcher bindings hint. (77366)
Migrate __experimentalText to wordpress/ui Text in Pattern Overrides Dropdown. (77492)
Span the writing flow focus capture elements over the canvas. (82354)
TypeScript: Migrate format-library package to TS. (79486)
Post Editor
Block Editor: Remove the dead Write/Design editor tool plumbing. (82677)
Editor: Apply the showListViewByDefault preference in the shared editor. (82119)
Editor: Fix disabled and link items of the more menu adapter. (82428)
Editor: Mark __unstableSaveForPreview options as optional. (81858)
Remove the content-only inspector fields (block fields) experiment. (82531)
Data Layer
Core Data: Convert hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. tests to renderHook and drop JSX. (82276)
Remove the template activation experiment. (82241)
Validate tsconfig references against declared dependencies. (82106)
feat: Improve TypeScript definitions in the getEntityRecord function. (81863)
Fields
Declare the caption, alt text, description and pingPingThe act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” status controls through the Field API. (82539)
Remove unused CSS rule from slug field control. (77961)
Widgets Editor
Edit Widgets: Guard canInsertBlockInWidgetArea against an empty block list. (82107)
Widgets: Replace {TODO} placeholder with PR number in changelog entries. (82450)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”)
https://developer.wordpress.org/rest-api/
Templates REST API: Prevent fatal error when a null template reaches prepare_item_for_response. (82374)
View Config: Move the table column style descriptions to the 7.2 compat layer. (82372)
Create Block
Test package at supported Node.js versions. (82657)
Site Editor
View config: Remove stale fields from the wp_template default view. (82602)
Make BlockTransform a discriminated union over its type. (81831)
A11yAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Packages: Exclude src from autop published package. (77283)
Tools
Point to docmumentation about release assets. (82250)
Project Management: Add validation for missing GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ labels configuration. (76263)
Project Management: Remove empty entries from CODEOWNERS. (82292)
Project Management: Restore CODEOWNERS exclusions for suppression lists. (82538)
Project Management: Update CODEOWNERS to reflect current participation. (82262)
Add more end-to-end tests for the editor inspector consolidation experiment. (82239)
Add more end-to-end tests for the editor inspector consolidation experiment. (82327)
Add promptfoo for testing agent development setup and skills. (80812)
Add the template end-to-end tests for the editor inspector consolidation experiment. (82394)
Automated Testing: Enforce .tsx for all new ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org files. (80123)
Automated Testing: Fix failing categories test on trunk. (82182)
Automated Testing: Fix unit test compatibility with Node.js v26. (82618)
CI: Add “Required changes from trunk” PR check. (82272)
CI: Add a per-workflow status check job and filter paths. (81015)
CI: Unify the automation comments into a single PR comment. (82249)
DataViews: Remove obsolete Node 20 timezone test gate. (82644)
DateTime tests: Freeze the clock in the empty-value calendar test. (82282)
e2e-test-utils-playwright: Update Lighthouse and web-vitals. (81916)
E2E: Run the site editor suite against the extensible site editor too. (82117)
Fix privacy policy page setting unit test on multisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site. (82467)
Test: Drop the jest-dom Vitest entry point from test files. (82606)
Test: Enforce JavaScriptJavaScriptJavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser.
https://www.javascript.com test runner ownership. (82299)
Bundled packages: Add a check for transitive private API usage. (82027)
CI: Collapse package CHANGELOG check exclusions into a single grep pattern. (82121)
CI: Read the required npm version from a single source. (82235)
Change stray ubuntu-latest to ubuntu-24.04. (82156)
Fix the high-severityseverityThe seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while priority is its relationship to other bugs. sharp audit failure in AI development tests. (82627)
Framework: Error on npm versions older than the required floor. (82320)
Maintenance of the GitHub mirror of the WordPress build repository has recently being transferred to the WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/systems team.
In future, any syncing issues with the GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ mirror should be reported to the system team, either on the make/systems blogblog(versus network, site) of via the SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/#meta channel if you are unable to post a report to the systems blog.
Background
The WordPress git mirror began as an unofficial project maintained by Mark Jaquith an Emeritus CommittercommitterA developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. and WordPress Lead Developer. In 2014 official Git mirrors were created and mirrored to GitHub.
The original GitHub mirror of the build repository continued to be maintained by Mark as it used a different branchbranchA directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". and tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) naming structure to the official mirror along with different hashes.
Although Mark is no longer active in the project, until recently he has continued maintaining the mirror single handedly. The move to systems will increase the number of people maintaining the sync.
Thank you @markjaquith for maintaining the mirror since you stopped being active in the project day-to-day.
Props @barry and @jorbin for reviewing this post prior to publication.
A goal has been set for the Build/Test tools component for WP 7.2 to reduce build time across the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. dev pipeline. Folks are invited to join the PHPUnit test cleanup for 7.2.
@drivingralle is asking for feedback on GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/issue 79082 / PR 79146.
Background (apart from what’s in the Issue and PRs): these are two features that are available in 7.1, but are incomplete:
Icons: being able to use keywords in the search is invaluable
Placeholder: would be great for this to work outside the Site Editor, in the BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Editor
@n8finch‘s team is pretty jazzed about these features, and would like to be able to use them. These PRs push the features over the finish line.
@oglekler proposed to move the new contributor meeting a bit earlier at 1 pm UTC so that it will be more convenient for people from Asia, but of course another shift in timing is something that people will need to get used to. She added that people from Asia are mostly who are attending, even if time isn’t ideal for them. Ideally we need to 2 meeting to cover all the globe.
@joefusco shared that tracking RTC’s polling cost and the Gutenberg & Presence APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. overlap in presence-api#444, for anyone following that space. Originating from this thread.
@ericmann shared that for those who didn’t see the comments on his make/core post about the Secrets API proposal, he have an initial working draft of a feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins live at https://github.com/ericmann/secrets-api and would love feedback on this. His hope is this also addresses some of the feedback we’ve gotten from hosts/providers about how they can integrate with their own platforms as well.
More chances to come as it develops and we work on interop with other systems, but feedback is absolutely welcome and encouraged
You must be logged in to post a comment.