Summary, Dev Chat, December 3, 2025

Startย of the meeting inย SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., facilitated by @benjamin_zekavica ๐Ÿ”— Agenda post.

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.ย 

GutenbergGutenberg The 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/ย 22.2 has been released!

Gutenberg 22.2ย has been released and isย available for download!

Discussions ๐Ÿ’ฌ

Clarify wording for the Version field in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.

@SirLouen pointed out that the Handbook currently says the Version field shows when a bugbug A 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.โ€ @joedolson noted this can be confusing, and most agreed it should show the version where the bug was introduced.

@jorbin has updated the Handbook, and everyone is welcome to update any other places in the Handbook where the old wording still appears.

#6-9, #core, #dev-chat

Dev Chat Agenda โ€“ December 3, 2025

The next WordPress Developers Chat will take place on Wednesday, December 3, 2025, at 15:00 UTC in theย coreย channel onย Make WordPress Slack.

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ย ticketticket Created 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 CoreCore Core 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 TracTrac An 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 bugbug A 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.

#6-9, #agenda, #core, #dev-chat

WordPress 6.9 Release Candidate 4

The forth Release Candidaterelease candidate One 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:

PluginPlugin A 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-partyInstall and activate the WordPress Beta Tester plugin on a WordPress install. (Select the โ€œBleeding edgebleeding edge The latest revision of the software, generally in development and often unstable. Also known as trunk.โ€ channel and โ€œBetaBeta A 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 candidate One 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 DownloadDownload the RC4 version (zip) and install it on a WordPress website.
Command LineUse the following WP-CLI command:ย 
wp core update --version=6.9-RC4
WordPress PlaygroundUse the 6.9 RC4 WordPress Playground instance to test the software directly in your browser without the need for a separate site or setup.

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 UIUI User interface styling issue.
  • #41604: REST APIREST API The 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.
  • Ability to Hide blocks

How you can contribute

WordPress is open sourceOpen Source Open 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 bugbug A 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.ย 

Curious about testing releases in general?ย  Follow along with the testing initiatives in Make Core and join the #core-test channel on Making WordPress Slack.

Update your theme or plugin

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.

Want to test WordPress on your hosting system? Get started with configuring distributed hosting tests here.ย 

Help translate WordPress

Do you speak a language other than English? ยฟEspaรฑol? Franรงais? ะ ัƒััะบะธะน? ๆ—ฅๆœฌ่ชž? เคนเคฟเคจเฅเคฆเฅ€? เฆฌเฆพเฆ‚เฆฒเฆพ? เคฎเคฐเคพเค เฅ€? เฒ•เฒจเณเฒจเฒก?ย  You can help translate WordPress into more than 100 languages. This release milestone (RC2) also marks the hard string freeze point of the 6.9 release cycle.

An RC4 haiku

Petals gently pause,
Perfect in their final form โ€“
Waiting for release.

Props to @amykamala, @wildworks, @krupajnanda, @westonruter for proofreading and review.

#6-9, #development, #release

Ability to Hide Blocks in WordPress 6.9

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 blockBlock Block 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 APIAPI An 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 capabilitycapability Aย 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 coreCore Core 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' );

For additional implementation details and history, see Gutenberg PR #71203.


Props to @joen for co-authoring the note.
Props to @westonruter, @ramonopoly for review.

#6-9, #dev-notes, #dev-notes-6-9

Summary, Dev Chat, November 26, 2025

Startย of the meeting inย SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., facilitated by @benjamin_zekavica ๐Ÿ”— Agenda post.

Announcements ๐Ÿ“ข

6.9ย Release Candidaterelease candidate One 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!

WordPress 6.9 Release Candidate 3 is now available for download and testing.
Further information you can find here.

6.9 Release Day Timeline Shift

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 note Each 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:

Forthcoming releases ๐Ÿš€

6.9 Timeline

WordPress 6.9ย is planned forย December 2, 2025.

Call for Testingย 

The Test Team invitesย testing and feedbackย on the following upcomingย blockBlock Block 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:

Discussions ๐Ÿ’ฌ

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 CoreCore Core 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.

#6-9, #core, #dev-chat

6.9 Release Day Timeline Shift for State of the Word

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 Word This 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.

The list of tasks to perform for the dry run can be found in the Core Handbook.

Release Day

There are a few different checklists for release day: CoreCore Core 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:

TimingTaskAssignment
17:00 UTC (T-210m/3.5h)1. Triage report 40@ellatrix/@davidbaumwald
17:45 UTC (T-165m)2. Pin @committers to pause all committing.@akshayar/@amykamala
17:50 UTC (T-160m)3. Update the `about.php` page (if necessary)@ellatrix/@davidbaumwald
18:00 UTC (T-150m/2.5h)4. Verify `package.jsonJSON JSON, 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.@ellatrix/@davidbaumwald
18:05 UTC (T-145m)5. Verify `src/wp-adminadmin (and super admin)/includes/update-core.php`@ellatrix/@davidbaumwald
18:10 UTC (T-140m)6. No new default theme. Skip this step.NA
18:10 UTC (T-140m)7. Run unit tests.@ellatrix
18:20 UTC (T-130m)8. Run `npm run grunt prerelease`/check GitHubGitHub GitHub 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.@davidbaumwald(Just confirming from the Dry run)
18:20 UTC (T-130m)8a. Run security tests.@davidbaumwald
18:35 UTC(T-115m)9. Update version in src/wp-includes/version.php@ellatrix
18:40 UTC (T-110m)10. Tag the release from the 6.9 branchbranch A 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".@ellatrix/@davidbaumwald
18:45 UTC (T-105m)11. Create release packages via mc.wordpress.orgWordPress.org The 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/@davidbaumwald
18:50 UTC (T-100m)12. Remind those in SlackSlack Slack 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.@akshayar/@amykamala

WordPress.org Checklist

The following is the timeline for the WordPress.org checklist:

TimingTaskAssignment
18:55 UTC (T-95m)1. Check packages are showing at w.org/download/releases.@davidbaumwald
19:00 UTC (T-90m/1.5h)2. Unzip/untar packages/verify checksums.@davidbaumwald
19:05 UTC (T-85m)3. Test packages.All Party Attendees
19:35 UTC (T-55m)5. Bump versions in w.org files.@sergeybiryukov
19:40 UTC (T-50m)6. Update credits file (if necessary).@sergeybiryukov
19:45 UTC (T-45m)7. Build language packs.@sergeybiryukov
20:00 UTC (T-30m)State of the Word begins.NA
20:15 UTC (T-15m)Release contributors attending SoTW called on stage.NA
20:18 UTC (T-12m)Take the final screenshot of the downloads counter. (timing differs from the checklist to account for the time gap)@akshayar/@amykamala
20:20 UTC (T-10m)8. DeployDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. to WordPress.org.@sergeybiryukov

Tell the World Checklist

The following is the timeline for the Tell the World checklist:

TimingTaskAssignment
20:25 UTC (T-5m)1. Publish the release video on WordPress.tv (if necessary)N/A
20:30 UTC (T+0m)2. Publish announcement on w.org/news and celebrate. ๐ŸŽ‰@akshayar/@amykamala
20:35 UTC (T+5m)3. Open an amplification request with Marketing.@akshayar/@amykamala
20:40 UTC (T+10m)4. Publish the HelpHub release page.@estelaris
20:45 UTC (T+15m)5. Update the WordPress Versions page.@estelaris
20:50 UTC (T+20m)6. Update the PHPPHP The 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 .@desrosj
20:55 UTC (T+25m)7. Update the PHPUnit compatibility page.@desrosj

Post Release

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!

Props @davidbaumwald, @annezazu, @sergeybiryukov, @johnbillion for post and timeline review.

#6-9

Dev Chat Agenda โ€“ November 26, 2025

The next WordPress Developers Chat will take place on Wednesday, November 26, 2025, at 15:00 UTC in theย coreย channel onย Make WordPress Slack.

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ย ticketticket Created 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 candidate One 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!

WordPress 6.9 Release Candidate 3 is now available for download and testing.
Further information you can find here.

6.9 Release Day Timeline Shift

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 note Each 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:

Forthcoming releases ๐Ÿš€

WordPress 6.9 Timeline

WordPress 6.9ย is planned forย December 2, 2025.

Call for Testingย 

The Test Team invitesย testing and feedbackย on the following upcomingย blockBlock Block 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:

Discussions ๐Ÿ’ฌ

The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the CoreCore Core 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.

#6-9, #agenda, #core, #dev-chat

WordPress 6.9 Field Guide

Edit 11/25/25: The Miscellaneous Editor Changes developer note was published after the Field GuideField guide The 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 candidate One 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, CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. developers, and others.

There are more than 400 Core Trac tickets included in WordPress 6.9, over 125 of which are enhancements and feature requests, and more than 250 bug fixes. This release includes 35+ tickets focused on the Editor, 15 tickets focused on wp-admin, and over 45 tickets focused on performance.

Additionally, this release includes 440 enhancements and more than 570 bug fixes for the BlockBlock Block 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 APIAPI An 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 filterFilter Filters 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.

Improved Editing Tools and Architecture

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.

Iframeiframe iFrame 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:

  1. The block.json schema now only allowsapiVersion 3 for new or updated blocks.
  2. A warning will be displayed in the browser console when a block is registered usingapiVersion 1 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 pluginPlugin A 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.

Streaming Block Parser

WordPress 6.9 includes a new WP_Block_Processor tool for scanning block structure in HTMLHTML HyperText 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 JSONJSON JSON, 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.

New Blocks and Block Improvements

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 capabilitiescapability Aย 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.

Heading Block CSSCSS Cascading Style Sheets. Specificity Fix

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.

New & Improved APIs

Meet the Abilities API

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.

Updates to Interactivity API

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.

Updates to HTML API

The HTML API has been refined in 6.9, with multiple bugbug A 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.

Improved Block Binding API

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.

Optimized Performance

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 enhancementenhancement Enhancements 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.

Modernizing UTF-8 Support

A new fallback pipeline written in PHPPHP The 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.

Updated Query Cache Handling

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.

Remove Support for Loading Assets Conditionally for IE

WordPress 6.9 removes support for enqueing scripts and styles with legacy conditional statements that target specific versions of Internet Explorer conditional. All remaining related checks have also been removed from the default themes, an effort that began in #56699. The code related to Genericons has also been updated for themes that included this webfont.

AccessibilityAccessibility Accessibility (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.

PHP 8.5 Support

WordPress 6.9 has added โ€œbetaBeta A 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.

Miscellaneous Developer Changes

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, multisitemultisite Used 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 hooksHooks In 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.

Miscellaneous Editor Changes

The 6.9 release also brings a number of miscellaneous developer-focused changes within the Block Editor. Be sure to read this dev notedev note Each 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 HTTPSHTTPS HTTPS 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 URLURL A 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'.

Improved Email Handling and Inline Image Support

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 extensibleExtensible This 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 headerHeader The 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.

PHP AI Client

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.

MCP Adapter

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.

But wait, there is more!

6.9 offers so much more!ย  More than 250 bugs, 123 enhancements and feature requests, and 22 blessed tasks have been marked as fixed in WordPress 6.9.

Below are a few more to highlight:

  • Abilities API: Roadmap to WP 6.9: defining and deciding (AI-83)
  • Accessibility: Navigation block: fix submenu Escape key behavior (GB-69834)
  • 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.

Props to @desrosj, @jorbin, @sabernhardt, @joedolson, @priethor, @jeffpaul, @westonruter, @davidbaumwald, @akshayar, and @annezazu for review.

#6-9, #field-guide

Updates to the HTML API in 6.9

WordPress 6.9 brings an abundance of quiet improvements to the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIAPI An 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.. Updates in this release mostly represent applications of the HTML API to existing code in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.; these updates increase WordPressโ€™ reliability, improve its security hardening, and reduce maintenance burden on the project.

Major Updates

WP_HTML_Processorโ€‹::โ€‹serialize_token() is now public.

The HTML Processorโ€™s serialize_token() method returns a fully-normalized and well-formed representation of the currently-matched token. It was introduced in #62036 for WordPress 6.7 as a private method which performs the heavy-lifting for how the HTML API turns โ€œjunkโ€ inputs into equivalent well-formed outputs. For example:

$html = '5 < 8 & <tag a=v a="dup"id=di></3>bl&#97rg';
echo WP_HTML_Processor::normalize( $html );
// 5 &lt; 8 &amp; <tag a="v" id="di"><!--3-->blarg</tag>

Its value outside of WP_HTML_Processor::normalize() became evident, however, particularly in the creation of โ€œserialization builders1โ€ which make it possible to modify more of the HTML structure than the HTML Processor itself does. In typical HTML API loops, this method can be used to partially extract portions of the document safely:

// Extract the outerHTML of every paragraph element.
$processor = WP_HTML_Processor::create_fragment( $html );
$content   = '';
while ( $processor->next_tag( 'P' ) ) {
    $content .= $processor->serialize_token();
    $depth    = $processor->get_current_depth();
    while (
        $processor->next_token() &&
        $processor->get_current_depth() > $depth
    ) {
        $content .= $processor->serialize_token();
    }
    $content .= $processor->serialize_token();
    $content .= "\n\n";
}

WordPress understands JavaScriptJavaScript JavaScript 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/. .dataset properties.

HTML provides a convenient mechanism tying HTML and JavaScript together through the custom data attributes on a tagtag A 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.). These are the attributes starting with data- like dataโ€‘wpโ€‘interactive or dataโ€‘postโ€‘id and their values are available on the corresponding Element object in JavaScript through the .dataset property:

<span data-order="Carrots please!">
    What should we order?
</span>
<script>
document.body.addEventListener(
    'click',
    event => alert( event.target.dataset.order )
);
</script>

There are endless ways this integration can be used to add a level of dynamism to a site. Unfortunately, how the name of these attributes is transformed looks simpler than it is. For example, the dataโ€‘wpโ€‘bindโ€‘โ€‘class HTML attribute corresponds to the wpBindโ€‘Class dataset property.

To prevent confusion, WordPress 6.9 includes two new functions to map between the HTML and JavaScript names: wp_js_dataset_name() indicates what would appear on the .dataset property in a browser while wp_html_custom_data_attribute_name() indicates what name should be used in HTML to produce the .dataset property of a given name. For example:

// What would this HTML attribute name correspond to in JavaScript?
echo wp_js_dataset_name( 'data-one-two--three---four' );
// oneTwo-Three--Four

// What HTML attribute name is necessary to produce the given JavaScript name?
echo wp_html_custom_data_attribute_name( 'postId.guid' );
// data-post-id.guid

No more hard-coding HTML string assertions in unit tests.

WordPress is full of unit tests asserting specific HTML transformations. The expected outputs for these tests are usually hard-coded and sent to $this->assertSame() to compare against the actual outputs from the code under test. Unfortunately this tends to produce a high rate of false positives because of trivialities like adding an attribute in a different order than was expected, using single-quotes around an attribute value rather than double-quotes, leaving extra whitespace or not enough, or using the mistaken self-closer on an <img> or <br> tag.

When two HTML strings produce the same result in a browser they should pass regardless of their insignificant differences. To ease the development of these kinds of tests and to reduce their false-positive rates, WordPress 6.9 introduces a new method on the WP_UnitTestClass base class: $this->assertEqualHTML().

This new test assertion verifies that two strings are equivalent representations of the same normative HTML. They compare HTML strings semantically, provide more useful output than string comparison when they fail to assert, and theyโ€™re even aware of blockBlock Block 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. semantics.

$this->assertEqualHTML(
  "<img src='puppy&period;jpg'   loading=lazy>",
  '<img loading="l&#97zy"src="puppy.jpg"/>'
);
 โœ”๏ธŽ Is equivalent html

Time: 00:00.038, Memory: 40.00 MB

OK (1 test, 1 assertion)

This test case would pass since the arguments are two equivalent constructions of the same IMG element. However, a few small changes and it succinctly highlights their differences. The addition of the block comment delimiter is for illustrative purposes only.

$this->assertEqualHTML(
    "<!-- wp:image {\"id\":5} --><img src='puppy.jpg' loading=lazy>",
    '<!-- wp:img {"id":6} --><img loading="lazy" data-priority=5 src=puppy.jpg/>'
);
 โœ˜ Is equivalent html
   โ”
   โ”œ HTML markup was not equivalent.
   โ”œ Failed asserting that two strings are identical.
   โ”Š ---ยทExpected
   โ”Š +++ยทActual
   โ”Š @@ @@
   โ”Š -'BLOCK["core/image"]
   โ”Š +'BLOCK["core/img"]
   โ”Š    {
   โ”Š -ยทยทยทยท"id": 5
   โ”Š +ยทยทยทยท"id": 6
   โ”Š    }
   โ”Š    <img>
   โ”Š +ยทยทยทยทdata-priority="5"
   โ”Š      loading="lazy"
   โ”Š -ยทยทยทยทsrc="puppy.jpg"
   โ”Š +ยทยทยทยทsrc="puppy.jpg/"
   โ”Š  '
   โ”‚
   โ•ต /WordPress-develop/tests/phpunit/includes/abstract-testcase.php:1235
   โ•ต /WordPress-develop/tests/phpunit/tests/html/equivalentHtmlTest.php:10
   โ”ด

Time: 00:00.038, Memory: 40.00 MB

The HTML API received minor updates.

  • The Tag Processorโ€™s constructor will now cast null to an empty string. Similarly, the static creator methods on the HTML Processor will return null instead of an instance of the WP_HTML_Processor class. In each case a _doing_it_wrong() notice will alert developers that these classes expect a string input. This change prevents burying the type errors, which leads to unexpected crashes later on, such as when calling get_updated_html().
  • When calling set_modifiable_text() on a SCRIPT element, updates are rejected if they contain <script or </script in them. This is a conservative measure to avoid entering the script data double escaped state (personal blogblog (versus network, site)) which is prone to misinterpretation.

Full Changelog

Enhancements

  • wp_js_dataset_name() and wp_html_custom_data_attribute_name() map between HTML attributes and the .dataset property in JavaScript. [#61501, PR#9953]
  • The WP_UnitTestClass now contains an assertEqualHTML() method which determines if two strings represent the same normative HTML. [#63527, PR#8882]
  • Multiple length checks are safely skipped when processing SCRIPT content due to an early minimum-length check. [#63738, PR#9230]
  • Encoding detection in METAMeta Meta 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. tags is simplified, leading to a minor performance lift. [#63738, PR#9231]
  • WP_HTML_Processor::serialize_token() is now public, making it easier to mix the full safety of the HTML API with outside code modifying and combining HTML. [#63823, PR#9456]
  • The Tag Processor and HTML Processor handle invalidinvalid A 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. null inputs safely. [#63854, PR#9545]
  • set_modifiable_text() rejects additional contents inside a SCRIPT element when the contents could disturb its normal closing. [#63738, PR#9560]

Bug Fixes

  • Attempting to avoid the HTTP Referer problem, quirks mode is referred to as indicated_compatibility_mode. [#63391, PR#9401]
  • wp_kses() no longer unescapes escaped numeric character references for users without unfiltered_html, preserving more of the actual entered content in a post or comment. [#63630, PR#9099]
  • SCRIPT tags are properly closed in the presence of abruptly-closed HTML comments within the contents, and when the closing SCRIPT tagโ€™s tag name is delimited by a form-feed. [#63738, PR#9397]
  • wp_kses() now allows some previously-missing HTML5 semantic tags and their attributes. [#63786, PR#9379]
  • set_attribute() directly escapes syntax characters into HTML character references to avoid problems with double-escaping logic. This ensures that all values are represented accurately in the resulting HTML. [#64054, PR#10143]

Core refactors

A number of places in Core were updated to benefit from the HTML API.

  • Several of the unit tests now rely on assertEqualHTML(), including for block supports, wp_rel_nofollow(), wp_rel_ugc(), wp_kses, post-filtering, media, oEmbed filtering. [#59622, #63694, PR#5486, PR#9251, PR#9255, PR#9257, PR#9258, PR#9259, PR#9264]
  • get_url_in_content() relies on the Tag Processor to more reliably detect links. Besides improving general HTML parsing, this new version always returns the decoded href attribute, preventing confusion in downstream code. [#63694, PR#9272]
  • Processing for image blocks in classic themes is now performed via the HTML API rather than with PCREs. [#63694, PR#10218]

Acknowledgements

Props to @jonsurrell and @westonruter for reviewing this post.

  1. Methods to replace innerHTML and outerHTML, wrap an element, unwrap an element, insert elements, and more are possible by scanning through a document and conditionally copying the normalized tokens into an output string. โ†ฉ๏ธŽ

#6-9, #dev-notes, #dev-notes-6-9, #html-api

PHP 8.5 support in WordPress 6.9

PHP 8.5 was released on November 20th. Contributors to WordPress have been busy in recent months preparing for this version and weโ€™re happy to report that all issues reported against PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 8.5 have been addressed in WordPress 6.9 RC2. Compared to previous PHP releases relatively few changes were required, mostly to address new deprecations and warnings. Take a look at the PHP 8.5 support tracking ticket if youโ€™re interested.

Due to the acknowledgement that WordPress is rarely used in isolation (without any theme or plugins), support is labelled as โ€œbetaBeta A 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โ€ until at least 10% of all WordPress sites are running that version or later, as this indicates good compatibility across the wider ecosystem of plugins and themes.

PHP Compatibility and WordPress Versions page in the WordPress Core Handbook

Following the established guidelines, support for any given version of PHP is labelled as โ€œbeta supportโ€ until at least 10% of all WordPress sites are running that version or later. When WordPress 6.9 ships on December 2nd, support for PHP 8.5 and 8.4 will be labelled as โ€œbeta supportโ€. PHP versions 8.3 back to 7.2 are fully supported.

If you discover a bugbug A 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. or compatibility issue while running WordPress with PHP 8.5, please create a ticket on Trac.

Summary

As always, reading through the complete upgrade document is recommended.

Even as WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. continues to expand its support for new versions of PHP, support for older versions will remain as-is in WordPress 6.9, staying at PHP 7.2.24 and higher. This will continue to be evaluated and no change will be made until usage numbers show that the impact on users will be minimal.

WordPress continues to encourage all users to run the latest and greatest versions of PHP, including PHP 8.5.

Props @desrosj, @jorbin for reviewing this post.

#6-9, #dev-notes, #dev-notes-6-9, #php-compatibility