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.
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.
Announcements ๐ข
WordPress 6.9ย is now available!
WordPress 6.9 is now available for download. Huge thanks to all contributors who made this release possible. ๐
Discussions ๐ฌ
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.
Clarify wording for the Version field in TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.
@SirLouen suggests updating the Handbook wording. The current description says the Version field reflects the version where 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. was โdiscoveredโ, which may be misleading. Proposed change: use โintroducedโ for improved clarity. See Reference.
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.
The forth Release Candidaterelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). (โRC4โ) for WordPress 6.9 is ready for download and testing!
This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, itโs recommended that you evaluate RC4 on a test server and site.
Reaching this phase of the release cycle is an important milestone. While release candidates are considered ready for release, testing remains crucial to ensure that everything in WordPress 6.9 is the best it can be.
You can test WordPress 6.9 RC4 in four ways:
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
Install and activate the WordPress Beta Tester plugin on a WordPress install. (Select the โBleeding edgebleeding edgeThe latest revision of the software, generally in development and often unstable. Also known as trunk.โ channel and โBetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process./RCrelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). Onlyโ stream).
Direct Download
Download the RC4 version (zip) and install it on a WordPress website.
Command Line
Use the following WP-CLI command:ย wp core update --version=6.9-RC4
The scheduled final release date for WordPress 6.9 is December 2, 2025. The full release schedule can be found here. Your help testing RC versions is vital to making this release as stable and powerful as possible. Please continue checking the Make WordPress Core blog for 6.9-related posts in the coming weeks for more information.
Whatโs in WordPress 6.9 RC4?
Get a recap of WordPress 6.9โs highlighted features in the Beta 1 announcement. Take a look at theย WordPress 6.9 Field Guide. For more technical information related to issues addressed since RC3, you can browse the following links:
The following updates have been addressed since RC3:
#64305: Hidden async-upload field marked as required causes publishing to fail in the editor.
#64315: Running _wp_cron() during shutdown breaks sites using ALTERNATE_WP_CRON.
#64269: โRemoveโ button in Media Library gallery has a UIUIUser interface styling issue.
#41604: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/. incorrectly returns success instead of an error when updating a non-existent setting.
WordPress is open sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. software made possible by a passionate community of people collaborating on and contributing to its development. The resources below outline various ways you can help the worldโs most popular open source web platform, regardless of your technical expertise.
Get involved in testing
Testing for issues is crucial to the development of any software. Itโs also a meaningful way for anyone to contribute.ย
Your help testing the WordPress 6.9 RC4 version is key to ensuring that the final release is the best it can be. While testing the upgrade process is essential, trying out new features is equally important. This detailed guide will walk you through testing features in WordPress 6.9. For those new to testing, follow this general testing guide for more details on getting set up.
If you encounter an issue, please report it to the Alpha/Beta area of the support forums or directly to WordPress Trac if you are comfortable writing a reproducible 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. report.ย You can also check your issue against a list of known bugs.ย
For plugin and theme authors, your products play an integral role in extending the functionality and value of WordPress for all users.
Thanks for continuing to test your themes and plugins with the WordPress 6.9 beta releases. If you havenโt yet, make sure to conclude your testing and update the โTested up toโ version in your pluginโs readme file to 6.9.
If you find compatibility issues, please post detailed information to the support forum.
Test on your hosting platforms
Web hosts provide vital infrastructure for supporting WordPress and its users. Testing on hosting systems helps inform the development process while ensuring that WordPress and hosting platforms are fully compatible, free of errors, optimized for the best possible user experience, and that updates roll out to customer sites without issue.
WordPress 6.9 now includes a built-in feature to hide blocks, making it easy to tuck content away without deleting it. You can now hide blocks: select a 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., click the ellipsis, and choose โHideโ. Hidden blocks are visually removed from the editor, and fully omitted from the published markup. Scripts and styles for hidden blocks are also omitted from the rendered page by default (see WordPress 6.9 Frontend Performance Field Guide for more details).
To unhide a block, open the List View, identify hidden blocks via the โHiddenโ icon next to them, open the ellipsis menu again, and choose โShowโ. You can also toggle Hide/Show from the keyboard: use Ctrl + Shift + H on Windows orย Linux, โ + Shift + H on macOS.
How to disable the hide option
Because it is implemented as a standard Block 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. support flag, opting into or out of this 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). aligns with the rest of the block supports.
The support is enabled by default for every block type except for a short list of coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks. To disable the support selectively, hook into the block_type_metadata() filter, adjust the metadata, and update the supports.visibility flag:
function disable_block_visibility_support( $metadata ) {
// Disable visibility support for the core/group block.
if ( isset( $metadata['name'] ) && 'core/group' === $metadata['name'] ) {
$metadata['supports']['visibility'] = false;
}
return $metadata;
}
add_filter( 'block_type_metadata', 'disable_block_visibility_support' );
Moving a WordPress site has always meant fixing countless broken URLs. The links still pointed to the old domain, the images didnโt load, and the cover blocks lost their background. Not anymore! WordPress Importer now migrates the URLs in your imported content.
A Real Example
Imagine youโre editor-in-chief ofย https://yummy-๐ฒ-recipes.org/vegan โย an imaginary cooking site with vegan recipes. Your reader base is growing, things are going well, but when you meet people in person, they find it difficult to type in that emoji. You decide to move to an all-ASCII domain: https://yummy-cooking-recipes.org/
Your first step is exporting the site content. You go to wp-adminadmin(and super admin), click the right button, export the xml file, andโฆ what is it? Some posts have a really weird-looking markup. Is it because of that 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 you installed last week? Or 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 work you contracted last month? Youโre not sure. The markup is not wrong. It is valid HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers., and it renders well in every web browser. Itโs just not what youโve expected:
<!-- wp:cover {"url":"https://yummy-\uD83C\uDF7E-recipes.org/vegan/wp-content/uploads/photo.jpg","align":"left","id":761} -->
<div
class="wp-block-cover"
style="
background-image: url(https://yummy-\u1f372-recipes.org/vegan/wp-content%2Fuploads%2Fphoto.jpg);
"
>
<div class="wp-block-cover__inner-container yummy-๐ฒ-recipes.org/vegan/-cover">
<img
src="https://xn--yummy--recipes-vb87m.org/vegan/wp-content/uploads/cover.jpg"
/>
<h1>Yummy Vegan Recipes!</h1>
<p>You are on the official yummy-๐ฒ-recipes.org/vegan site!</p>
<p>
Be careful โ there is a phishing site you may mistake us for:
extra-yummy-๐ฒ-recipes.org/vegan/.
Oh! And our email is: hello@yummy-๐ฒ-recipes.org
</p>
</div>
</div>
<!-- /wp:cover -->
You sigh and think Well, that will take some work to adjust. The existing URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org rewriting tools, such as wp search-replace, will catch some URLs but miss most of them. They may alter the warning about the phishing site, which mentions a similar but distinct domain. And then you notice the last WordPress importer release.
WordPress importer now solves this exact problem!
You import your content on the new site with a bit of disbelief. Can it really get it right? You think. But you try it, and, after a brief moment, the import is finished with all the URLs correctly updated:
<!-- wp:cover {"url":"https://yummy-cooking-recipes.org/wp-content/uploads/photo.jpg","align":"left","id":761} -->
<div
class="wp-block-cover"
style="
background-image: url("https://yummy-cooking-recipes.org/wp-content%2Fuploads%2Fphoto.jpg");
"
>
<div class="wp-block-cover__inner-container yummy-๐ฒ-recipes.org/vegan/-cover">
<img
src="https://yummy-cooking-recipes.org/wp-content/uploads/cover.jpg"
/>
<h1>WordPress news!</h1>
<p>You are on the official yummy-cooking-recipes.org/ site!</p>
<p>
Be careful โ there is a phishing site you may mistake us for:
extra-yummy-๐ฒ-recipes.org/vegan/.
Oh! And our email is: hello@yummy-๐ฒ-recipes.org
</p>
</div>
</div>
<!-- /wp:cover -->
Isnโt that great?
Breaking down what the importer did
The WordPress importer knows the difference between a URL that needs migrating and an unrelated text that just happens to contain similar characters. Letโs take a closer look at the data migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. weโve just done.
These parts were migrated:
Domain encoded using punycode (xn--yummy--recipes-vb87m.org)
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. with Unicode escapes (yummy-\uD83C\uDF7E-recipes.org)
HTML attributes with entities (src="https://xn--yummy--recipes-vb87m.org/vegan/wp-content/uploads/cover.jpg")
CSSCSSCascading Style Sheets. with Unicode escapes encoded as an HTML attribute (style="background-image: url(https://yummy-\u1f372-recipes.org/vegan/wp-content%2Fuploads%2Fphoto.jpg);")
URLs using %-encoding mixed with HTML entities (%2Fuploads%2Fphoto.jpg)
These parts stayed exactly as they were:
The CSS class yummy-๐ฒ-recipes.org/vegan/-cover. The class name coincides with the domain, but itโs still a unique identifier defined in a stylesheet. Changing it would affect how the site is displayed.
The email address hello@yummy-๐ฒ-recipes.org. In this migration, only the website domain changes. Old emails continue to work.
The reference to extra-yummy-๐ฒ-recipes.org. Itโs a different domain. It would be modified by a simple string replacement, but the WordPress importer recognizes the difference and preserves the original domain.
The WordPress importer parses each data format and encoding, respecting the syntactical nuances, and finds the raw URLs beneath all the layers. All of that happens during the import. The old URLs never make it to the database.
Because the imported data doesnโt require post-processing, thereโs no need to run the traditional UPDATE wp_post SET post_content=REPLACE(old_url, new_url, post_content) queries after the import. This is a big deal. Those queries might be just a minor inconvenience on a small site, but on larger sites, they could take days and lock the most important tables.
If you are interested in even more technical context, see the original Pull Request and the various resources linked in the description.
Try It Out
URL rewriting is available in WordPress Importer 0.9.5 out of the box. You only need to check the checkbox before starting the import:
WP-CLI has an open Pull Request to support this feature.
If youโd like to try it out now, hereโs a WordPress Playground demo that imports a content page similar to the example used in this post. You can inspect the imported markup and also go to wp-admin and try importing your own file.
Please share your feedback โ it matters a lot! You can share your experience with WordPress Importer in the comments under this post. For any issues and feature requests, feel free to open an issue in the WordPress/wordpress-importer repository.
Whatโs next?
The WordPress importer improvement roadmap lists several more upcoming features to improve site migrations, such as support for importing large files, concurrent media downloads, or a direct WordPress-to-WordPress site synchronization. You can follow along and share your thoughts in the roadmap issue.
Props to @dmsnellfor the major effort he put into the structured data parsers and all his guidance and feedback. Props to @zaerl for his help with reviewing WordPress-importer PRs. Props to @bphfor the feedback that helped greatly improve the URL rewriting experience and also for reviewing this post.
This post summarizes key discussions from the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.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. meeting held on November 25, 2025 with project leadership. As with previous check-ins, the goal is to align on key initiatives, gather feedback, and clarify next steps for the WordPress project.
Note: This meeting followed the Chatham House Rule.
Purpose of these meetings
The group briefly discussed what the goals of these meetings are and which groups are ideal to include. Contributors have asked if only committers are invited, or if broader groups are allowed to join as well (component maintainers, team reps, etc.).
After discussing, the following was agreed upon:
These meetings are most valuable when committers only attend plus a small group of invited contributors who support that group in establishing and accomplishing project-level goals.
This creates a safe space for free, honest, and frank conversations, which is the most prominent reason why these meetings are valuable.ย
There is certainly value in having more frequent open forums for wider audiences. These should have narrower focuses, and could have guest speakers, and field some questions ahead of time.
Looking ahead: 2026
The next topic of conversation was forward facing around the planning for 2026 and beyond.
Release Planning Post-6.9
The first item related to 2026 planning discussed was to seek clarification on the rough plan for releases going forward.
The main point to underscore out of this discussion is that the intention in 2026 is to return to a cadence of 3 major releases per year. A release in February was proposed, but most felt that was too short.
December is really quiet as many people take time off to end the year.
February release would mean betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 very early in January, leaving just over a month for an alpha period.
The features that are being worked on would likely not be ready in time for a February release (more on these later).
March or April was suggested, and there was a higher level of confidence in that target.
Lining up the release day of 6.9 with State of the WordState of the WordThis is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what weโve done, what weโre doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/. is an experiment of a new way to celebrate a release. If it goes well, future major releases could be planned to coincide with flagship events. However, this could be complicated and may require additional planning from leadership and involvement with contributors that help plan release cycles.
Events are typically planned around budget, venue availability, and regional factors such as the predominant religious holidays or weather patterns.
It could limit options for release squad members due to availability issues because of time zone differences, or for people who are traveling to and from the events leading up to release day.
Targeted release dates are also influenced by the features being targeted for each release. So which features are targeted for 7.0?
Possible Features for 7.0
To start this conversation, features that were removed from or were not ready in time for 6.9 were mentioned. These included:
Template activation
The tabs 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.
Client side abilities for the Abilities 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.
This rough draft document was shared. Someone in attendance uses this as a way to track any ongoing UXUXUser experience/UIUIUser interface improvements, who is responsible, their high-level status, etc. and will be turned into a proper post in the near future.
Some other features explicitly discussed:
WP AI Client work
Client-side media editing
The status of the adminadmin(and super admin) redesign project was mentioned. The intention of this was clarified. Itโs not about completely redesigning the admin area. Itโs more about giving it a new coat of paint and refreshing what is already there. How can we revive WP Admin?
How can the settings screens be improved?
The view transitions 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 is quite nice and makes the admin feel more modern and refreshed.
Site Health and the PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher upgrade warning in the dashboard have gotten really scary and overwhelming. How can these be more approachable, useful, and informative?
Can the dashboard be used more effectively?
The About page is seen by so few people today with many sites auto-updating major releases.
Are there new ways to inform the user about an update that happened? Or educate them on how to better take advantage of newly added features?
Previously, the welcome 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. was updated with each release, but that practice has stopped.
Are there new widgets that can be added, such as โon this dayโ or โnew/unresolved notesโ for sites making use of the Notes feature.
WordPress AI Client in Core
Work continues on the AI Client parallel to releases. Because the AI client is a great way to encourage the ecosystem to build around solid foundations (such as the Abilities API), the ideal home for this is Core itself. The combining of these related APIs will unlock so many possibilities for developers and site owners.
Core will always remain agnostic. Including a specific model or only integrating with some third-party services is not sustainable.
Features can be conditionally available based on the presence of an AI model.
Open sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. models could be used. But oftentimes the experience is bad.
Models are quite large.
They must download on a per-site basis, which takes time and disk space (even the smallest models are approaching 1GB)
Machine-based models such as Apple Intelligence may be an option.
A few more promising initiatives/approaches were discussed.
Browsers are working towards including models within the browser. This means they would already be installed on a userโs machine, and all data stays local.
AI can be implemented in a way that browser-based models can be overridden but serve as the fallback/default when no other models or services are configured. In some recent experiments, browser-based models have shown to be very strong when put up against small, state of the art ones.
One exercise that could be helpful is to step back and consider what the use cases are in default WordPress before picking a model. A few possible use cases were mentioned:
Searching the media library for specific subject matter within images.
Creating a newsletter based on recent content.
An area of improvement for the group is the story being told. How do the tools being built improve WordPress? How do they benefit the user? How does work being done today open the door for empowering functionality later?
A few more ideas were thrown out as ways to improve how well LLMs work with and for WordPress:
Improving code base documentation helps LLMs understand the code base better.
Including โbuild for WordPressโ as a benchmark within models.
Ensure site content and WordPress is accessible for models.
Tools like PHPStan and languages such as TypeScript with stricter typing help make the code base more consumable and easier to understand
Raising the minimum required PHP version to 7.4
This conversation focused on the compelling reasons for changing the projectโs support policy.
Raising the minimum allows the project to move forward with new features.
Itโs a balance between bringing users with us and not being held back.
Not about leaving people behind.
PHP 7.4 moves the needle in the direction of being more heavily-typed (see previous TypeScript point above), making it easier for AI models to ingest and understand.
Thereโs a good amount of bloat in the code base that only remains to support older versions of PHP.
AI-related SDKs from third-parties have varying minimum PHP requirements. Keeping the minimum required version of PHP too low prevents using some of these.
Understanding Responsible Parties
Throughout the 6.9 release, it was helpful to know who was responsible for or leading efforts for a given feature. It helps the community to better understand where there are gaps and where they can pitch in to help.
When looking at the potential 7.0 features (and beyond), efforts will be made to continue this practice.
Follow Up Action Items
Propose additional open/semi-open meeting formats for wider community groups and increased transparency (@4thhubbard & @desrosj).
Publish a release schedule for 2026.
Determine the targeted features for 7.0 (and possibly 7.1).
Consider what would be needed to regularly coordinate release days to coincide with in-person events.
6.9ย Release Candidaterelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).ย 3 is now available!
Please note that the release preparation timeline for WordPress 6.9 has been adjusted. A revised schedule is now in place, aligned with theย State of the Wordย onย December 2. A detailed overview of the updated timeline isย available here.
6.9ย Dev Notesdev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.
For more detailed information, see the following WordPress 6.9 Dev Notes:
The Test Team invitesย testing and feedbackย on the following upcomingย 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 features:
Browser Support Policy โ Clearer Front-end vs. Adminadmin(and super admin) Rules
Recent issues, including #64266 and #64015, highlighted that itโs not always clear which browsers need to be supported in the WordPress Admin and which ones should be supported on the front end. As block themes and FSE generate more front-end output, clearer guidance would help set expectations.
@joedolson will draft a proposal on the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.blogblog(versus network, site) to gather broader feedback, with support from @desrosj.
Each and every WordPress release day is an acknowledgment of the collective efforts from every single contributor in the community that helped to make that release possible. The State of the WordState of the WordThis is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what weโve done, what weโre doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/. has historically also been festive in nature, calling out the broad accomplishments of the WordPress community over the course of the previous calendar year.
The 2025 State of the Word was planned around an idea: what better way to celebrate and honor the 6.9 release and the communityโs accomplishments from 2025 than combining the two occasions? With that in mind, the event was moved to December 2.
While thatโs exciting, thereโs still another level: publishing the 6.9 release to the world during the event! This sets the stage for the ultimate celebration of the WordPress community to close out 2025.
Release Day Planning
Because the release process can take a few hours, getting the timing correct will take quite a bit more coordination than usual.
The event will begin at 20:00 UTC (12:00 PST) and the new targeted release time is 20:30 UTC (12:30 PST).
Keep in mind that things happen. While this is the ideal schedule, unforeseen problems can (and do) come up. The timeline has extra time built just in case something goes wrong within a specific step. This is meant as just a guide.
Pre Final Release
Because the goal is coordinating a specific release time, this checklist should be completed as far in advance as possible. For this release, as much of the list as possible should be completed just after the dry run.
Dry Run (-26 hours)
The dry run should occur 26 hours prior to the planned final release time. This allows a few hours to complete the necessary tasks before starting the 24 hour code freeze.
There are a few different checklists for release day: CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., WordPress.org, Tell the World, and a post-release one.
Core Checklist
Here is the timeline for these tasks for the Core checklist:
4. Verify `package.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.` is updated.
8. Run `npm run grunt prerelease`/check 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 be the repository owner. https://github.com/ Actions.
10. Tag the release from the 6.9 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".
11. Create release packages via mc.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/
12. Remind those 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/. that links should not be shared.
6. Update the PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher Compatibility page (link 6.9 row/column headers to .
The post release checklist can be handled on a less strict timeline as the event continues.
Summary
While each version of WordPress is released by a collection of contributors working synchronously around the globe, this is the first time a release will be published during an event with a specific release time being targeted. Please ask questions early and often to ensure everything is accounted for and everyone is on the same page. A little planning now will help get this right so the community can have lots of fun doing it.
Itโs a wonderful opportunity to celebrate all the hard work thatโs gone into this release both in person and from afar. Letโs lean on each other, be kind, chip in where we can when we need to, and get 6.9 across the finish line!
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.
Announcements ๐ข
WordPress 6.9ย Release Candidaterelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 3 is now available!
Please note that the release preparation timeline for WordPress 6.9 has been adjusted. A revised schedule is now in place, aligned with the State of the Word on December 2. A detailed overview of the updated timeline is available here.
WordPress 6.9 Dev Notesdev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.
For more detailed information, see the following WordPress 6.9 Dev Notes:
The Test Team invitesย testing and feedbackย on the following upcomingย 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 features:
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.
Browser Support Policy โ Core/Adminadmin(and super admin) vs. Frontend
@joedolson proposes clarifying the distinction between our browser support policies for Core/Admin and for front-end output. Several recent cases have shown that the current scope is not consistently understood, especially in the context of ongoing FSE development. The goal is to determine how far our official support is expected to extend in each area. (See #64266, #64015)
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.
Edit 11/25/25: The Miscellaneous Editor Changes developer note was published after the Field GuideField guideThe field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page.. It has been added below.
This guide outlines major developer features and breaking changes in 6.9 and is published in the Release Candidaterelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). phase to help inform WordPress extending developers, CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. developers, and others.
Additionally, this release includes 440 enhancements and more than 570 bug fixes for 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, Site Editor, DataViews, and other related Core APIs.
Below is a breakdown of the most important developer-related changes included in WordPress 6.9.
Table of contents
New Ways to Collaborate
Creating and managing content with WordPress 6.9 is more versatile, with new tools and features that encourage collaboration and increase the ease of use. Users can now add notes to blocks, and can take advantage of optimized DataViews and a command palette implemented across wp-admin.
Notes
In WordPress 6.9 editors can write notes and reply to others directly at the individual block level, allowing teams to collaborate, track changes, and provide feedback during the editing process. Notes can be resolved, edited, deleted, and email notifications are sent to the post author when a new one is left.
Updates to Field 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., DataViews and DataForms Components
This release also comes with upgrades to the Field API as well as the DataViews and DataForms components.
In the Field API the field type has been expanded to include more than 10 new field types, 11+ edit controls that support validation, over 16 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. operators and user-input filters in filterBy, readOnly options to disable field editing, and so much more. Updated DataViews functions include improvements to modals and text-based actions, infinite scroll, and the ability to build custom layouts with children that leverage DataViewsโ internal state management and data handling logic. DataViews also now persists via @wordpress/views while DataForms now has an improved panel, new card and row layouts, and revamped controlled validation.
WordPressers can now drag and drop blocks more easily, hide blocks with a click, and use the new WP_Block_Processor class to convert documents into a block structure, while page architecture is improved with the continued integration of iframes.
Direct Drag and Drop
Drag and drop has been improved, with the ability to directly move blocks around within the site editor instead of a drag chip, for a faster, easier, and more intuitive editing experience.
Ability to Hide Blocks
WordPress 6.9 allows editors to hide and reveal blocks with a simple click.
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. Integration in Post Editor
As part of an ongoing initiative to move the post editor into an iframe, a few changes have been made to help with this transition:
The block.json schema now only allowsapiVersion3 for new or updated blocks.
A warning will be displayed in the browser console when a block is registered usingapiVersion1 or 2.ย
These changes aim to help developers migrate their blocks to use apiVersion 3 with the plan to fully place the editor within an iframe in WordPress 7.0. While this change has been researched and tested at length, additional testing is needed by block and 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 to make any necessary improvements in future releases.
WordPress 6.9 includes a new WP_Block_Processor tool for scanning block structure in HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. documents. The new class walks through the document to analyze or adjust the block structure while showing a structural view without affecting text, converting documents into a nested array of block information and parsed 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. attributes.
An expanded block library with new and upgraded blocks is bundled into 6.9, which includes a new math block, new accordion block, terms query block, comments link and comments count blocks, and improved heading and time to read blocks. This release also contains modified text editing abilities with fitText block support that enables automatic font size adjustment to fit text within its container boundaries (and much more).
Perform Calculations using ฯ in the Math Block
The new Math block adds support for MathML and LaTeX renderers to display math in either block or inline mode, which can be added in any rich text field including tables, headings, and lists.
Collapsible Content with the new Accordion Block
The new Accordion Block in 6.9 supports custom styling and pattern 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).. Learn how to style accordion blocks here.
6.9 includes a refined CSS selector for padding in headings that have a background, which now targetsย headings with both.wp-block-heading and.has-background classes to ensure padding customizations affect only the intended block.
The Abilities API enables WordPress Core, plugins, and themes to register their functionality in a unified, standardized, machine-readable format. The Abilities API is part of the broader AI Building Blocks for WordPress initiative to build the tools needed for extenders to integrate AI tools into WordPress in a native way.
In WordPress 6.9 the Interactivity API now offers a standardized way to assign unique IDs to Interactivity API directives, allowing website elements to be given multiple similar directives without conflicts. The getServerState() and getServerContext() functions have been updated, and a new algorithm optimizes script and stylesheet handling, enhanced support for router regions in interactive elements, and adds a new attachTo property that acts as a CSS selector pointing to the parent element for router rendering.
The HTML API has been refined in 6.9, with multiple 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. fixes and enhancements. The WP_HTML_Processor::serialize_token()is now public, extending the safety of the HTML API to outside code modifying and combining HTML, while set_modifiable_text() now rejects SCRIPT element contents that could disturb its normal closing.
The updated Block Bindings interface in 6.9 focuses on usability, with the added ability to switch between sources, and bind or unbind attributes with a single click, while the new block_bindings_supported_attributes_{$block_type}filter facilitates customizing how a blockโs attributes connect to a Block Bindings source.
WordPress 6.9 delivers significant performance improvements designed to improve the site loading experience for visitors. Improvements to LCP (Largest Contentful Paint) metric are achieved by implementing on-demand block styles for classic themes, minifying block theme styles, and increasing the limit for inline stylesโall of which reduce render blocking. The critical rendering path is decongested by deprioritizing non-critical scripts (e.g. for interactive blocks and emoji detection) which had competed with loading resources like the LCP elementโs image. Page stability is also improved by preventing the Video block from causing layout shifts.
Many other enhancements are shipped, such as optimized database queries, improved caching, better spawning of WP Cron, and a new template enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. output buffer which opens the door for many future optimizations which were previously impossible.
A new fallback pipeline written in PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher enables WordPress 6.9 to process text encoding and UTF-8 handling independently of the running environment, bringing more reliability across WordPress environments and for themes and plugins that work with international content, emojis and the like.
The 6.9 release changes how cache keys are created when caching queries performed through WP_Query. While persistent object cache drop-ins should not be affected, developers and web hosts should make note of the changes and take advantage of the four new functions introduced.
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) Updates
WordPress 6.9 includes 10 enhancements and 23 bug fixes focused on accessibility, offering new and improved screen reader notifications, improved semantics and focus management, and updated CSS generated content to prevent excess content from being read.
WordPress 6.9 has added โbetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. supportโ for PHP 8.5, addressing all known incompatibilities, warnings, and notices while maintaining support for older PHP versions (currently 7.2 and up). As a reminder, โBeta supportโ is a label applied to versions of PHP that have less than 10% usage across all WordPress sites.
A range of additional developer-related updates improve both the user experience and the development experience. These changes span various areas of WordPress Core, including media, 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, new 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., and browser interactions. While individually minor, they collectively reflect ongoing efforts to enhance usability in WordPress and provide a more predictable and flexible foundation for developers.
The 6.9 release also brings a number of miscellaneous developer-focused changes within the Block Editor. Be sure to read this dev notedev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. so youโre up to speed!
Updated Adminadmin(and super admin) Menu Search Query
In WordPress 6.9, the search query used by the admin menu has changed from $_SERVER['QUERY_STRING'] to $_GET. This makes the search behavior more predictable and avoids issues caused by depending on the raw query string. Extensions that override or inspect admin menu search behavior should review any assumptions about how the menu search value is retrieved.
Additional Support for 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. in URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org-escaping Functions
In WordPress 6.9, the esc_url(), esc_url_raw() and sanitize_url() functions can now be configured to prepend https:// to a URL that does not already contain a scheme by default when the first item in the $protocols array is 'https'.
WordPress 6.9 introduces several updates that make the email system more reliable and more flexible for developers. The wp_mail() function now sets sender addresses in an extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. way, protects encoding headers between calls, and leans more consistently on PHPMailer for content type handling. Many long standing bugs around 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. handling and message formatting have also been resolved.
This release also adds support for inline and embedded images in HTML emails, allowing developers to send richer message templates without relying on external image URLs. Email content that uses cid: based references can now render images directly inside the message, opening up cleaner options for branded notifications, transactional emails, and plugin generated workflows.
The new PHP AI Client SDK facilitates integration of AI abilities with plugins and PHP projects. The interface works with all AI providers, and developers can specify which AI abilities to include, which provider, and which model to use. Credentials are centrally managed and work across all compatible plugins.
The new MCP Adapter utilizes Model Context Protocol (MCP) to standardize the applicationโs interactions with LLMs, expose abilities to AI assistants, and connect with other MCP servers. This allows WordPress to act as both server and client, registering its capabilities through the Abilities API for AI assistants to discover and use, while also integrating with other MCP servers, making it possible to leverage external AI tools within WordPress.
Editor: Button Block: Add HTML Element selection in Advanced settingsย (Accessibility) (GB-70139)
Editor: Enable the Command Palette everywhere in admin dashboard (GB-58218)
Editor: New block additions for the Block Library (GB-71026)
Editor: Toolbar: Adjust colors for dark mode supportย (GB-66454)
General: Replace deprecated / non-standard CSS for speak and aural (accessibility) (GB-63603)
Global Styles: Move Randomize colors button to Edit Palette panel (GB-66169)
Thank you to everyone who contributed to this version of WordPress, whether through code, testing, or something else โ your contributions matter and help Make WordPress.
You must be logged in to post a comment.