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.
This guide outlines major developer features and breaking changes in 6.5 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). cycle 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.
GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ included in this release has 373 enhancements, 515 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 65 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) improvements.
Changes in 6.5 are spread across 40 Core components. Below is the breakdown of the most important ones.
Table of contents
Principal Changes
Minimum System Requirement
The minimum version of MySQLMySQLMySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com has been raised from v5.0 to v5.5.5. (#60036)
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
A new attribute $variation_callback has been introduced in WP_Block_Type. This limits the ability to modify variations by reference directly as was done previously.
WordPress 6.5 brings 10 Gutenberg releases into core โ 16.8, 16.9, 17.0, 17.1, 17.2, 17.3, 17.4, 17.5, 17.6, and 17.7. You will find new features, APIs, and various improvements. Highlights include the Interactivity 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., Font Library, and Block Bindings API.
The Interactivity API gives you a simplified and standardized way of building interactive front-end experiences with Blocks while offering optimal performance. Previously, this can only be done with third-party libraries. You may use it in scenarios such as fetching search results instantly or letting visitors interact with content in real time.
The Block Bindings API gives you the ability to link Core Block attributes to the values of Custom Fields without needing to create custom Blocks. You can extend 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). further to connect Blocks to any dynamic content.
HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API
WordPress 6.5 brings significant updates to the HTML API. The tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) processer has received a major overhaul and a further amount of the HTML specification is now supported. If you have been sub-classing WP_HTML_Tag_Processor, there are some specific changes you should pay attention to.
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
The Performant Translations feature plugin has been merged into Core. The new translation system is much faster and uses less memory with the new .l10n.php format; it also continues to support all three existing translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. formats: .l10n.php, .mo, and .po files. Two new filters translation_file_format and load_translation_file are introduced.
AVIF support comes to 6.5. AVIF is a modern image format that can be up to 50% smaller than JPEGs while maintaining the same image quality. You can now upload/edit/resize/save AVIF images if supported by your hosting environment. The way you operate on AVIF images remains the same as with other existing image formats. If you run 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, there is a FAQ just for you.
The Script Modules API brings native JavaScriptJavaScriptJavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโs browser.
https://www.javascript.com Module support to 6.5 and provides two modules for use with the WordPress Interactivity API.
It is strongly recommended that developers currently utilizing JavaScript modules in their extensions migrate to the Script Modules API.
A 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.โs dependencies can be declared by using a new Requires Plugins 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. in the dependent pluginโs main file. The header must contain a comma-separated list of 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/-formatted slugs.
Example:
/** * Plugin Name: Bridge for Foo and Bar * Requires Plugins: foo, bar */
Dependency slug conditions:
Dependent plugins hosted on WordPress.org can only declare dependencies that are also hosted on WordPress.org.
Dependent plugins not hosted on WordPress.org can declare dependencies whether hosted on WordPress.org or elsewhere.
Declaring a plugin dependency places the following requirements:
Requirements on dependent plugins:
Cannot be installed until its dependencies are installed.
Cannot be activated until its dependencies are activated.
Requirements on dependency plugins:
Cannot be deactivated while its dependents are activated.
Cannot be deleted while its dependents are installed.
The following features are not currently supported:
Version management
Must-Use plugins as dependencies
Themes that require plugins
Automatic deactivation of dependent plugins
A new 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.wp_plugin_dependencies_slug has been introduced to allow for alterations to dependency slugs.
A new class WP_Plugin_Dependencies has been introduced with public API methods available.
The UIUIUser interface of the plugin row the plugin row has been changed to reflect a pluginโs dependencies/dependents. The UI of dependent plugin cards has been changed to reflect its dependencies, with modal links to install and activate them first.
Automatic redirection from Plugins > Add New is no longer performed upon activation of a plugin.
Props to @cosdev for review.
Additional Changes
External Libraries
The following libraries were updated to the latest versions:
wordpress/scripts version 17 has dropped official support for unmaintained Node.js versions. The oldest supported Node.js version is now Node.js 18. (Misc Editor Dev Changes)
Classic themes can now opt in to appearance tools support. (#60118)
Media
Control of jpeg progressive image output has been enabled. A new image_save_progressive filter has been added, which controls whether intermediate image sizes are saved in a progressive format (when available). By default, progressive image output is disabled, matching the current behavior. (#21668)
Permalinks
Caddy web server: support pretty permalinks when Caddy web server is detected. (#41877)
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/
A featured_media field for featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. (also known as a poster image) has been added to the REST API wp/v2/media attachments endpoint. (#41692)
Site Health
Site ID has been included in the debug data on multisite installations. (#60081)
Upgrade/Install
During bulk upgrades, a theme upgrade is now checked for satisfying the minimum WordPress version or the server PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher version. This was previously done for plugins, but not themes. (#59758)
New/Modified 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.
Introduced in WordPress 6.5, the Font Library allows users to manage fonts directly in the editor. It comes with a set of APIs that allow developers to control, adapt, and disable its behavior.
Font Collections
A Font Collection is a list of font family definitions that can be installed by the user via the editor. The font family definition is a fontFamily item in theme.json format. By default, WordPress 6.5 allows users to opt-in to a collection listing for Google Fonts. To allow sites to remain GDPR compliant, installing a Google Font downloads the file to the WordPress server.
When a Font Collection is registered, it will appear in the Font Library UIUIUser interface in the editor. From here, users can install and activate fonts from the collection.
Adding a Font Collection
A new Font Collection can be added using the wp_register_font_collection() function. This can be done by supplying a list of font families and their font faces in either PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher or 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. format as part of the Font Collection array.
Here is an example of adding a Font Collection in PHP:
Please note that the name and description fields of the Font Collection array must be translatable, which can be achieved by wrapping the strings in the _x() function. Font Family names are not typically translated. For more information and background discussion, see #60509.
JSON format for the font_families field can be a local path or a remote URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org that points to the JSON file.
Removing a Font Collection
A Font Collection can be disabled by using the wp_unregister_font_collection() function. Here is an example which disables the default font collection:
Fonts definitions are based on the theme.json format for font settings. โInstallingโ a font to the site saves the theme.json formatted settings from the collection into the database, so the font can be activated for any theme.
When the font is โactivated,โ the Global Styles settings for the theme are updated so that the font is included, along with the fonts defined by the theme, and can be used in the typography settings for Global Styles and individual blocks.
When switching to a new theme, installed fonts need to be re-activated, to update the siteโs Global Styles settings for that theme. If Global Styles for a theme are reset, this will deactivate all installed fonts, but they will remain installed on the site and can be reactivated as desired.
Additionally, the Font Library can be used to deactivate fonts included with the theme, if they arenโt needed, to improve the loading performance of the site.
Customizing the Fonts Upload Directory
Please note that some of the following details, such as function names, may change prior to the 6.5 release. For more information, see #60751 and GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ issue #59699.
By default, fonts will be uploaded to the wp-content/fonts directory. However, this location can be customized as required using the font_dirfilterFilterFilters 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.. For installations that donโt support modification of the wp-content directory, it is recommended to install the Fonts To Uploads plugin or use the code snippet below.
It is possible to return the location of the fonts upload directory by using wp_get_font_dir().
The example below changes the fonts directory to the WordPress โUploadsโ directory (by default, this is wp-content/uploads):
$fonts_dir = $uploads_basedir . '/fonts'; // Generate the URL for the fonts directory from the font dir. $fonts_url = str_replace( $uploads_basedir, $uploads_baseurl, $fonts_dir );
When modifying the upload location, it is important to ensure that the chosen location exists and has appropriate read/write permissions set.
Like the wp-content/uploads directory, the fonts upload directory will not adhere to wp_is_file_mod_allowed / DISALLOW_FILE_MODS to prevent font uploads.
Disable the REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think โphone appโ or โwebsiteโ) can communicate with the data store (think โdatabaseโ or โfile systemโ)
https://developer.wordpress.org/rest-api/
The register_post_type_args() filter can be used to disable the wp_font_family and wp_font_face REST API endpoints:
The rest_endpoints filter can be used to disable the font collections 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. endpoints:
function my_disable_font_collections_rest_api_endpoints( $endpoints ) { foreach ( $endpoints as $route => $endpoint ){ if ( str_starts_with( $route, '/wp/v2/font-collections' ) ) { unset( $endpoints[ $route ] ); } }
For detailed documentation about each of the new endpoints, please refer to the REST API Handbook and #57616.
Props and a massive thank you to everyone who helped put 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. together:@mmaattiiaass, @grantmkin, @peterwilsoncc, @youknowriad, @get_dave, @stevenlinx, @leonnugraha.
Update: This dev-note has been modified following a late decision to modify how font files were stored. Please refer to this follow up post on the subject of font file storage.
Update: This dev-note has been modified to update the code examples in the โDisable the REST APIโ section, as the previous example included the use of unregister_post_type(), which does not work on built-in post types. Please update any references to the previous example.
WordPress 6.5 RC 2 was released yesterday, March 12, 2024 and Gutenberg 17.9 was released earlier today. Please continue to help test and provide feedback.
Forthcoming Releases
Nextย major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5
We are in the final weeks before WordPress 6.5 isย scheduled to be released, with our final scheduled 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). (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). 3) scheduled for next week.
There are several important changes to our normal development process during the RC stage. For more, see this post: WordPress 6.5 Release Candidate Phase.
Please continue to test the 6.5 release. See this list ofย key features to test, which was published alongside WP 6.5ย 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.ย 3.
@marybaum confirmed the release team for RC3 on Tuesday, March 19, 2024. @audrasjbย as the 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., withย @hellofromtonya on backup andย @davidbaumwaldย as mcpilot; @akshaya will host with @priethor as backup.
@swissspidy also shared that RC3 is the last scheduled RC before the stable release. The topmost priority should be solving the Font Library uploads location as per Josephaโsย recent blog post. If you would like to help, there is anย open architecture discussion where you can get involved, and a couple of remaining related PRs:
Primarily, we need to find a robust way to ensure that, when deleting a font, the font files are deleted from the right folder. If we donโt have a solution for the above by RC3 we could consider an additional fourth RC.
There are alsoย some open Interactivity API bugsย and editor bugs, but nothing severe. It would be helpful if these issues had owners. @joemcgill suggested scheduling another 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. scrub this week to review these issues and assign owners.
Nextย GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ย release: 18.0
Gutenberg 18.0 is scheduled for release on March 27 and will includeย these issues.
Discussion
The discussion today started with organizing release squads for 6.5.x and 6.6 releases.
@jorbin confirmed that weโre still looking for folks to be involved in the 6.5.x maintenance releases. Please reach out if youโre available to help with these releases โ particularly if you were already involved in the 6.5 releases (but thatโs not a requirement).
@priethor has a draft for a post that identifies people who have raised their hands for 6.6.
A related discussion topic is whether we should reevaluate the size of release squads prior to 6.6. This came out of the discussion following the 6.5 release squad announcement (context). There was a discussion around the pros and cons of having larger release squads, including:
Larger squads spread the responsibility that used to be focused on just one person to a bigger team. However;
It doesnโt feel like there is much need for others to help or be involved when there are so many people responsible for a release.
The more individuals, the greater number of relationships and opportunities for both cliques and interpersonal conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved..
It sometimes leaves the team not knowing who should be making key decisions about features.
There were also suggestions for better documenting the responsibilities both within the release squad and within a lead group. Also, having feature leads would be helpful, i.e. folks spearheading and owning a specific big feature in a release.
@joemcgill suggested that we could review the release squad size as part of a debrief post for 6.5, and @priethor is working on a proposal for a reduced release squad that will be published in the upcoming days.
Highlighted posts
The full list of posts from the last week in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. can be read on the agenda at this link.
The live meeting will focus on the discussion of proposals and releases, updates on 6.5, and have an open floor section.
Additional items will be referred to in the various curated agenda sections, as below. If you haveย ticketticketCreated for both bug reports and feature development on the bug tracker.ย requests for help, please do continue to post details in the comments section at the end of this agenda.
Announcements
WordPress 6.5 RC 2 was released on March 12, 2024. Thanks to everyone involved and those who helped test.
Forthcoming releases
Next major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5
Updates from the release squad can be shared in the Dev Chat.
Please continue to test the 6.5 release. See this list of key features to test, which was published alongside WP 6.5 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. 3.
Next GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ release: 18.0
Gutenberg 18.0 is scheduled for release on March 27 and will include these issues.
Discussions
This week the discussion will focus on any priority topics that need to be raised before the next 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). for WordPress 6.5.
Proposed topics
Are there any priority topics needed for discussion ahead of WordPress 6.5 RC 3?
Update on A Call for 6.6 release squad
Should we reduce the number of leads on a release squad?
Feel free to suggest additional topics related to this release in the comments.
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Updates
Color and typography presets that are defined in theme variations are now exposed within the color and typography sections of Global Styles.
List 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. items can now be indented using the tab key.
Users can now shuffle between random patterns via the block toolbar when inserting a pattern.
Tickets for 6.5 will be prioritized. Please include detail of tickets / PR and the links into comments, and if you intend to be available during the meeting if there are any questions or will be async.
โWhatโs new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg.
As with Gutenberg 17.8, many contributors are still focused on polishing for the upcoming WordPress 6.5 release, so this Gutenberg release continues to prioritize stability and 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. Enhancements and new features are highlighted below.
As a reminder, with WordPress 6.5 now in the 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). phase, bug fixes from the Gutenberg 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. are backported for inclusion in 6.5 as needed. However, new features in Gutenberg 17.9 will not be included in WordPress 6.5.
Color and typography presets that are defined in theme variations are now exposed within the color and typography sections of Global Styles. This new feature allows users to mix and match color presets or typography from different variations, offering greater flexibility for designs from a given theme. (56622)
Indenting List 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. items via the tab key
The List block now supports indenting and outdenting when the selection is at the beginning of the List item. This improves the usability of the List block by allowing indenting via the keyboard, while still preserving existing tabbing behavior in the editor canvas when the selection is elsewhere within the block. (59199)
Shuffle option when choosing patterns
When a pattern is inserted and has categories defined, and where the pattern contains a single top-level block such as a Group block, a shuffle button is exposed in the block toolbar that allows a user to cycle through random patterns. This makes it easier to quickly browse through a variety of available patterns in specific scenarios. (59251)
Swap Template Parts in the Inspector
When selecting a Template Part in the site editor, the replace flow is now more discoverable with previews of alternate Template Parts available to select from the block inspector controls. This allows for a more at-a-glance approach to browsing different options for swapping out headers and footers. (55128)
Other Notable Highlights
Background images can now be set in the root of theme.json to provide site-wide background images (59354). There is currently no UIUIUser interface for it in Global Styles, and this will be explored in future releases.
For container blocks that use allowedBlocks, insert before and after actions are now supported on child blocks (59162).
Use drag handles to set row and column span and see a dotted outline of block placement when the new โGrid interactivityโ experiment is enabled (59052).
Changelog
Full changelog available
Enhancements
Data Views
Apply hover styles to 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. chip while being configured. (59236)
Display all checkboxes when a single item is selected. (59233)
Pages data view: Make โViewโ button open a new tab. (59554)
Update sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. titles for Template and Page management data views. (59011)
Global Styles
Add background image to top-level theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. styles. (59354)
Add color and typography presets to Global Styles. (56622)
Create a shared component for typography previews. (59503)
Enqueue block custom CSSCSSCascading Style Sheets. only when block renders on the page. (58991)
Style Book: Should persist when browsing global styles panels. (59261)
Block Library
Introduce the โuseUploadMediaFromBlobURLโ utility hook. (59350)
Remove redundant copy from PanelBody titles. (59278)
Template Parts: Add a replace flow to the inspector controls. (55128)
Site Editor
Block Theme Previews: Remove โLooking for Template Parts?โ hint. (59092)
Remove the site editor sidebar navigation edit button. (59335)
Scale the zoomed out mode to fit available space. (59342)
View full zoomed out mode canvas while inserting patterns. (59337)
Update the spacing in the font collection panel. (59357)
Post Editor
Editor: Standardize 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. button size to 32px. (58532)
Add Shuffle option to sections via pattern categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (59251)
Use block naming for marking blocks as overridable in patterns. (59268)
Components
Storybook: Add mechanism to redirect moved stories. (59181)
Nested / Inner Blocks
InnerBlocks: Support insert before/after block actions when using allowedBlocks. (59162)
Plugin
Update cherry pick script to addย Backported to WP Coreย label for backports. (58970)
Bug Fixes
Block Library
Columns: Correctly recalculate column widths when the column count is increased by more than 2 at once. (59301)
Group: Fix alignment of Group block placeholder text. (59271)
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop: Donโt show publicly non-queryable taxonomies. (59458)
Image: Remove scrolling of empty image blocks. (59305)
Site Logo: Update URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org for site icon settings with fallback for WP coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. versions earlier than 6.5. (59485)
Site Logo: Update capitalization of Use as Site Icon toggle. (59383)
Title & Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Hide non content controls when block editing mode is โcontentOnlyโ. (59295)
Font Library
Avoid creating font families without font faces. (59436)
Avoid loading theme fonts twice and assume they were already resolved by the font face resolver. (59421)
Changed installFont to installFonts so that multiple font families can be installed at once. (59451)
Fixed the font family modal to open in state when a font is already selected. (59379)
Font collection pagination: Add min height to avoid infinite number. (59241)
Hide UI elements when user lacks permissions. (59332)
Load/Unload the font face in browser when toggling the variants. (59066)
Use SearchControl component for search input. (59589)
Interactivity 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.
Fixย navigate()ย issues related to initial state merges. (57134)
Navigation: Add missing empty space to print out valid HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (59255)
Prevent unwanted subscriptions to inherited context props. (59273)
HStack, VStack: Stop passing invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. props. (59416)
Rich text: Fix typing into empty flex element. (59473)
URLPopover: Fix a problem with the layout of link settings. (58906)
Fix issue with appender jumping when creating a new pattern. (59582)
Allow event bubbling even if keydown is passed. (59474)
Custom Fields
Block Bindings: Fix console error when selecting a bound block. (59598)
Change default โConnected to a custom fieldCustom FieldCustom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributorsโ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes.โ message in bindings. (59434)
Fix inserting button block when pressing enter in a block with boundย textย attribute. (59361)
Fix query loop with block bindings not working in the editor as expected. (59283)
Data Views
DataViews: Donโt use combobox when there are few available options. (59341)
DataViews: Set color for primary field/aย element when focused. (58814)
Ensure ResizableFrame does not force Cover blocks within the editor to show drag handles. (59262)
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.: Scale html instead of iframe element for zoomed out mode. (59334)
Zoom out mode: Only apply grey background for mode. (59377)
Site Editor: Fix Global Styles outdated output. (59628)
Fix site editor crashing when not fully loaded. (59658)
Global Styles
Dynamically set border panel label based on the controls available. (59358)
Shadow: Fix layout collapse when indicator is selected. (59309)
Theme JSON: Check for null values to cater for blockGap. (59258)
Remove the extra unneeded color variations panel. (59718)
Post Editor
Command Palette: Prevent mode switching if only one editor mode is available. (59299)
Editor: Fix post type check in isEditingTemplate selector. (59105)
Top Toolbar: Fix โcollapsedโ state synchronization. (59267)
Block 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.
Display toggle for hooked blocks added via filter. (59396)
Navigation Block: Fix erroneous escaping of ampersands. (59561)
Patterns
Disable image caption if part of synced pattern. (58916)
Disable selection checkbox if no bulk actions are eligible. (58950)
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)
Docs: Fix typo in blocks attributes guide. (59571)
Docs: Remove TOC, update formatting, and fix grammar in Interactivity API reference. (59406)
Fixย @wordpress/interactivityย module ID in documentation. (59419)
Fix: Multi line comment format on footnotes block. (59312)
Format PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher inline comments correctly. (59452)
Interactivity API Docs: Add async actions documentation. (59401)
Interactivity API Docs: Add initial version of getContext and getElement. (59293)
Interactivity API Docs: Add server functions documentation. (59373)
Interactivity API Docs: Add withScope description. (59542)
Interactivity API Docs: Fix code not closing. (59395)
Interactivity API Docs: Update image with WordPress Make Core source. (59281)
Interactivity API Docs: Merge Interactivity documentation to keep consistency with other packages. (59270)
Theme JSON Tests: Refactor base styles to a static variable. (58975)
Update: Simplify code and use capture events instead of pointer-events hack. (59565)
l10nL10nLocalization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.: Unify terminology toย screen size. (59456)
Block Library
BlockPopover: Remove __unstableCoverTarget and __unstableRefreshSize in favour of BlockPopoverCover. (59228)
SnackbarList, Snackbar: Add unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.. (59157)
Global styles: Rename typography elements file. (59355)
Synced Patterns
Remove unneeded pattern overrides translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. strings. (59269)
Navigation Menus
Revert removal of Nav fallback auto embed. (59220)
Tools
Testing
Add a fixture for theย wp/blockย pattern block current version with overrides. (59492)
E2E: Refactorย setupย method to support class inheritance inย RequestUtils. (59362)
Migrate โautosaveโ end-to-end tests to Playwright. (58171)
Playwright: Pass the payload to createPost in data instead of query params to avoid URI too long errors. (59463)
In this post, you will find 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 smaller changes to the editor in WordPress 6.5.
New 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. Supports
Background image block support additional features for size, repeat, and position
In WordPress 6.5, the background image block support receives new controls related to the size of the background image: size, repeat, and position.
For blocks that use the background image block support (currently, the Group block is the only coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. block to use this support), these optional controls can now be displayed. They are hidden by default behind the tools panel menu in the Background controls on the inspector sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme..
How to add backgroundSize support to a theme
There are two ways to add support forย backgroundSizeย and the related size, as well as repeat and position control to a block theme. The simplest one is to opt into theย appearanceToolsย setting, which automatically enables a number of design tools (read more in the developer handbook).
For themes that wish to have more granular control over which UIUIUser interface tools are enabled, theย backgroundSizeย support can be opted into by settingย settings.background.backgroundSizeย toย trueย inย theme.json. For example:
Note that as of WordPress 6.4 and WordPress 6.5, theย backgroundImage,ย backgroundSize,ย and related supports are only available at the individual block level, not in global styles or at the site root. These features will be explored in subsequent releases, with progress tracked in this GithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ issue:ย #54336.
Props to @andrewserongfor writing the 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..
Aspect ratio block support
A new aspect ratio block support has been added in WordPress 6.5, with the Cover block opted-in by default. For themes using theย appearanceToolsย feature inย theme.json, the control will be available in the inspector controls under Dimensions.
The feature allows users to set an aspect ratio for the Cover block, and is mutually exclusive withย min-heightย rules. If an aspect ratio is set, thenย min-heightย isย unsetย to ensure that height rules do not conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with the aspect ratio. The aspect ratio rules will be output at render-time for the block via an inline style applied to the blockโs wrapper.
Note that themes or blocks that add width or height rules to a block will need to take care in testing compatibility withย aspect-ratioย if they are to opt-in to aspect ratio support. The aspect ratio tends to work most flexibly when width or height rules are not set.
How to add aspectRatio support to a theme
There are two ways to add support forย aspectRatioย to a block theme. The simplest is to opt into theย appearanceToolsย setting, which automatically enables a number of design tools (read more in the developer handbook).
For themes that wish to have more granular control over which UI tools are enabled, theย aspectRatioย support can be opted into by settingย settings.dimensions.aspectRatioย toย trueย inย theme.json. For example:
The Quote block hasย blockGapย support in WordPress 6.5. It also changes the default spacing between the quote and the citation in block themes that haveย blockGapย enabled, to be consistent with all other blocks that use the layout support. The default spacing will now use the layout spacing rules defined by a themeโsย styles.spacing.blockGapย value inย theme.json.
For themes that useย blockGapย but wish to use a different gap between the quote and the citation, they can set aย spacing.blockGapย value for the block directly.
Add padding and margin support to the Pullquote block
Pullquote block now supports padding and margin. At the same time, the browser default margin applied to the blockquote element inside the block has been reset to zero to ensure that padding values are applied accurately inside the block. Depending on themes, this effect may result in visual changes and the need to adjust padding or margin.
In WordPress version 6.5, footnotes are now supported on any custom post typeCustom Post TypeWordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. that fulfills certain requirements. To be eligible for footnotes, a custom post type must have 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). like 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/, custom fields, revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision., and editor support. If a post type meets these requirements, footnotes should be available by default without requiring any changes from the developer.
However, if a developer wants to remove footnotes support in a specific condition, for example, in a particular post type, they can use the 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. like any other block. The following code sample demonstrates how we can remove footnotes support from the โpostโ post type:
Props to @jorgefilipecosta for writing the dev note.
DependencyExtractionWebpackPlugin: Drop webpack4 and node<18
As webpack4 doesnโt support modules that blocks require to work, and that webpack5 was released more than three years ago, the support for webpack4 is dropped in WordPress 6.5.
In addition, the support for Node.js version 17 or older is dropped, as Node.js 18 is currently the oldest maintained version.
@wordpress/scriptsย version 17 has dropped official support for unmaintained Node.js versions. The oldest supported Node.js version is now Node.js 18.
@wordpress/dependency-extraction-webpack-pluginย version 5 has dropped official support for unmaintained Node.js versions. The oldest supported Node.js version is now Node.js 18.
@wordpress/dependency-extraction-webpack-pluginย version 5 has dropped support for webpack versions less than 5. Users should either upgrade to webpack v5 or continue to use v4 of the pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party.. Version 4 will not be maintained going forward. If youโre usingย @wordpress/dependency-extraction-webpack-pluginย viaย @wordpress/scripts, the webpack change should not affect you.
Stabilization of the block editorโs RecursionProvider API
Context
Originally implementedย as an experimental hook namedย __experimentalUseNoRecursiveRenders ย in early 2021, thenย improved and repackagedย in 2022 as the pairย __experimentalRecursionProviderย andย __experimentalUseHasRecursion, the purpose of these APIs is to prevent certain advanced block types from accidentally triggering infinite rendering loops inside the block editor. For example, the Template block must guard against these loops:
If a user adds an instance of the Template block into the contents of that same template (linear recursion);
If Template A contains Template B, which then contains Template A (mutual recursion).
As of today, the following core block types use the RecursionProvider API:ย
core/block
core/navigation
core/post-content
core/template-part.
Changes with WordPress 6.5
The API has been promoted to stable, thereby shedding theย __experimentalย prefix. Consumers should now use the API by importingย RecursionProviderย andย useHasRecursionย fromย @wordpress/block-editor, or via the WP global asย wp.blockEditor.RecursionProviderย andย wp.blockEditor.useHasRecursion.
For more details and a working example, see the componentโsย README.md document.
Before
After
wp.blockEditor.__experimentalRecursionProvider
wp.blockEditorRecursionProvider
wp.blockEditor.__experimentalUseHasRecursion
wp.blockEditor.useHasRecursion
Backwards compatibility
The former identifiers โย __experimentalRecursionProviderย andย __experimentalUseHasRecursionย โ are now deprecated. This means thatย they are still accessible, but their use will trigger a warning in the browser console.
Support for newย allowedBlocksย field inย block.json
WordPress 6.5 adds support for the new allowedBlocks field in theย block.jsonย file. It lets block developers specify which block types can be inserted as children of the given block. Itโs a companion to the existingย parentย andย ancestorย fields that have a similar function, namely specifying allowed parent block types. Example of usage in aย block.jsonย file:
One of the main advantages of theย block.jsonย field is that it can be modified by plugins. For example, you can create a block that acts as a custom list item and extend the Core List block so that your custom block can be inserted as its child:
This new API replaces theย allowedBlocksย option that can be passed to theย useInnerBlocksPropsย hook inside the blockโsย editย function. This option was previously used to implement the same check, but it wasnโt extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software.: the list of allowed blocks was hardcoded in the blockโsย editย function and couldnโt be modified.
Theย allowedBlocksย option on theย useInnerBlocksPropsย hook is still supported and is not deprecated, but you should use it only for specialized use cases. Like when the list of allowed blocks is dynamically calculated for each block: from its attributes, or from its surrounding environment (the parent block etc.).
Introducing theย block_core_navigation_listable_blocksย 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.
WordPress 6.5 introduces a new filter,ย block_core_navigation_listable_blocksย which is designed to provide control over the accessible rendering of child blocks used within the Navigation block.
Historically, the Navigation block has conditionally wrapped particular blocks inย <li>ย tags to ensure accessible markup on the front of the site.
With the introduction of the newย allowedBlocksย API, which technically allowsย anyย block to be added as valid children of the Navigation block, developers require a means to indicate which blocks need to be wrapped.
Theย block_core_navigation_listable_blocksย filter allows developers to determine whether a specific block should be wrapped in anย <li>ย tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.), thereby aiding in adherence to 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) standards and the creation of valid markup.
The example below shows theย mycustomblock/iconย block opting into being wrapped in anย <li>ย tag:
Two new selectors have been introduced to Block Editorโs Core Data API to fetch revisions and single revisions for post types that support revisions, for example, posts and pages, templates, and global styles.
getRevisions( kind, name, recordKey, query ) โ fetches a postโs revisions where recordKey is the id of the parent post.
getRevision(kind, name, recordKey, revisionKey, query) โ fetches a single post revision, where revisionKey is the id of the individual revision.
The functions use similar arguments to existing core data entity functions, such asย getEntityRecordsย with the addition ofย recordKeyย (post parent id) andย revisionKeyย (single revision id).
Example usage:
// Returns a collection of revisions.
// `parentGlobalStylesId` is the id (int) of the parent post.
wp.data.select( 'core' ).getRevisions( 'root', 'globalStyles', parentGlobalStylesId, { per_page: -1 } );
// Paginated results.
// `parentId` is the id (int) of the parent post.
wp.data.select( 'core' ).getRevisions( 'postType', 'post', parentId, { per_page: 3, page: 2 } )
// Get a single revision object.
// `parentId` is the id (int) of the parent post.
// `revisionId` is the id (int) of the individual revision post.
wp.data.select( 'core' ).getRevision( 'postType', 'post', parentId, revisionId );
// Get a single revision with only the id, parent and date fields.
// `parentId` is the id (int) of the parent post.
// `revisionId` is the id (int) of the individual revision post.
wp.data.select( 'core' ).getRevision( 'postType', 'post', parentId, revisionId, { _fields: 'id,parent,date' } );
getRevisionsย andย getRevisionย can also be used viaย useSelectย in ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org components:
import { useSelect } from '@wordpress/data';
import { store as coreStore } from '@wordpress/core-data';
function MyComponent() {
const pageRevisions = useSelect(
( select ) =>
select( coreStore ).getRevisions( 'postType', 'page', pageId ),
[ pageId ]
);
// Do something with pageRevisions...
}
In the background, these selectorsโ corresponding resolvers call revisionsย REST API endpoints.
Newย useSettingsย hook for reading block instance settings
When trying to improve the block editorโs performance for WordPress 6.5, one of the identified issues was related to theย useSettingย hook that is used by block instances to read various settings provided by the environment they are in: parent blocks, the theme, the block editor itself. It turns out that itโs inefficient to read multiple settings with separateย useSettingย calls:
Thatโs why WordPress 6.5 introduces this new hook. Theย useSettingย (singular) hook is now deprecated (using it will trigger a console warning), because reading even a single setting is very easy with theย useSettingsย (plural) hook:
The only change is that theย useSettingsย hook always returns an array, and the array needs to be destructured to read the single value. Supporting two APIs for performing the same task is therefore not justified.
Introduction of the PluginPostExcerpt Slot Component
This update introduces a new PluginPostExcerpt slot component within the GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ editor. This enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. allows for the extension of the Post ExcerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that pluginโs metabox. panel, allowing developers to customize this area for their needs.
Whatโs New?
The component enables the addition of custom content within the Post Excerpt panel. This is particularly useful for plugins looking to add extra functionality or information specific to their use case.
Usage
To utilize this new feature, developers can now insert their custom content into the Post Excerpt panel by creating a component that leverages the slot. This allows for a seamless integration of custom functionalities directly within the editor.
The following example shows adding custom content to the post excerpt panel.
Changes to the underlyingย Compositeย component implementation
WordPress 6.5 no longer includes theย Reakitย package, as it does not support React beyond v16. Theย __unstable*ย Composite componentย was built on this library, so it has been internally refactored.
What does this mean for consumers?
The primary API has not changed, and can still be imported with no changes. For typical usage patterns, there should be no differences, and in most cases, no action is required from consumers of the package.
However, composite state propsย mustย now be generated by theย useCompositeStateย hook; they can no longer be provided by independent state logic.ย Composite state argumentsย have not changed, though, and will continue to work as before.
import {
__unstableComposite: Composite,
__unstableCompositeGroup: CompositeGroup,
__unstableCompositeItem: CompositeItem,
__unstableUseCompositeState: useCompositeState
} from '@wordpress/components';
const state = useCompositeState({ ... });
// โ This will continue to work
...( <Composite { ...state } /> );
// โ๏ธ This will no longer work
...( <Composite { ...state } currentId={ ... } /> );
Consumers can continue to either spread the state or pass as a singleย stateย prop.
// โ Used by spreading the state
...(
<Composite { ...state }>
<CompositeGroup { ...state }>
<CompositeItem { ...state }>
{ ... }
</CompositeItem>
</CompositeGroup>
</Composite>
);
// โ Or with a single `state` prop
...(
<Composite state={ state }>
<CompositeGroup state={ state }>
<CompositeItem state={ state }>
{ ... }
</CompositeItem>
</CompositeGroup>
</Composite>
);
Because the shape of the returned composite state has changed, consumers can also now no longer destructure specific state props fromย useCompositeState.
// โ This will continue to work
const state = useCompositeState({ ... });
// โ๏ธ This will no longer work
const { groups, items } = useCompositeState({ ... });
Whatโs next?
We anticipate a new stableย Compositeย component to be released in WordPress 6.6, along with the deprecation of this unstable version.
Theย isPressedย prop on theย Buttonย component implicitly setsย aria-pressed, with no way to override it. But sometimesย Buttonย is used for roles other thanย button, such asย optionย andย checkbox, whereย aria-pressedย is not appropriate, and workarounds are required to add the correct semantics.
In an effort to move away from custom props that have native HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. equivalents, and to allow greater flexibility in component usage,ย aria-pressedย is now supported as a first-class prop, taking precedence overย isPressed.
A number of UI components currently ship with styles that give them top and/or bottom margins. This can make it hard to reuse them in arbitrary layouts, where you want different amounts of gap or margin between components. To better suit modern layout needs, we are in the process of deprecating these outer margins
A few releases ago, we deprecated the outer margins on a number of components and introduced transitional props so consumers could opt into these new styles before they become the default:
AnglePickerControl:ย __nextHasNoMarginBottom
CustomGradientPicker:ย __nextHasNoMargin
FontSizePicker:ย __nextHasNoMarginBottom
GradientPicker:ย __nextHasNoMargin
In WordPress 6.5, these margin-free styles have become the default. Any use of these props can be safely removed.
CustomSelectControlย used to have a hard-coded width, which was inconsistent with our other form components. In WordPress 6.1, we deprecated this unconstrained width, and introduced the transitionalย __nextUnconstrainedWidthย prop so consumers could opt into these new styles before they become the default.
In WordPress 6.5, these unconstrained width styles have become the default. Any use of theย __nextUnconstrainedWidthย prop can be safely removed.
Remove deprecation warnings for __next36pxDefaultSize
A few releases ago, we introduced aย __next36pxDefaultSizeย prop on several components, meant to coordiate the transition to a new default sizing scheme (36px height). Due to some changes in our design direction, we eventually dropped this prop in favor of theย __next40pxDefaultSizeย prop (40px height), making all existing opt-ins to theย __next36pxDefaultSizeย prop act as an opt-in to the 40px one.
After receiving developer feedback about this ahead of WordPress 6.5, we will no longer throw a deprecation warning for usages of theย __next36pxDefaultSizeย prop, informing consumers of this change. Do note, however, that it will trigger the new 40px size rather than the 36px size, despite the prop name.
Remove unusedย buttonBehaviorย attribute from the Search block
The Search block had a buttonBehavior attribute, which was referenced internally to determine the display variations of the block. However, this attribute was removed because it could not be changed from the user interface, and the default value was always referenced.
With this change, this attribute will no longer be referenced even if it has been added manually.
Similar to the setting that allows disabling layout controls inย WP 6.4, this allows only the content and wide size controls for a constrained layout to be disabled from the theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. file, globally or at a per-block level.
To disable the control globally for all blocks, add the following in theme.json underย settings.layout:
"allowCustomContentAndWideSize": false
To disable at the block level, add the following in theme.json underย settings.blocks:
A new_admin_email_subject hook is introduced, which filters the subject line of the email sent when a change of site adminadmin(and super admin) email address is initiated. (59250)
The default cursor style has been adopted for labels when its associated form controls are disabled, which improves 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). (59733)
Bootstrap/Load
Two new functions have been introduced to check whether WordPress is serving a 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/ request: wp_is_serving_rest_request() and wp_is_rest_endpoint(). Both functions should only be used after the parse_request action. A new 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.wp_is_rest_endpoint has been added to alter the return value of the wp_is_rest_endpoint() function. (42061)
Canonical
A new wp_admin_canonical_url filter hook is introduced to modify the admin canonical url value. (59545)
Editor
A new metadata global attribute has been added, which is needed for scenarios such as allowing the user to assign custom names to blocks, or for making 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.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. work with user-modified templates/parts/patterns. (59797)
A new data field allowed_blocks that specifies block types has been added in block.json for block registration and REST API. (60403)
New video and audio pattern categories have been added for better organization of patterns. (60342)
A new setting allowCustomContentAndWideSize that disables layout content and wide size controls has been added to WP_Theme_JSON class. (60133)
Default duotone styles is allowed if not explicitly disabled in theme.json. (60136)
An aspect ratio dimensions.aspectRatio block support feature has been added, with support for both Group and Cover blocks. (60365)
Shadow block support via direct attribute has been replaced with support via style attribute instead. (60377)
The capabilitycapabilityAย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โedit_postsโ capability), but not permission to edit other usersโ posts (the โedit_others_postsโ capability). to parse CSSCSSCascading Style Sheets. custom properties for fontSize and fontFamily has been added in WP_Style_Engine. (59982)
background-repeat has been added to the list of safe CSS properties for KSES. (60132)
viewStyle property has been added to block.json. This change brings block styles in parity with block scripts. (59673)
Pattern blockโs overrides attribute data structure has been updated and renamed to content. (60456)
Asset registration file .asset.php has been made optional for blocks. (60460)
Support for deferred block variation initialization on the server has been added, which improves performance. The WP_Block_Type object has added a new property, variation_callback, which can be used to register a callback for building variation data only when the block variations data is needed. The WP_Block_Type::variations property has been made private. (59969)
Emoji
twitter/twemoji has been replaced with jdecked/twemoji v15.0.3, which adheres to the Unicode 15 spec and adds support for all Emoji introduced in Emoji 15.0. (57600)
General
$schema property has been added to block.json and theme.json files, which help ensure these files conform to expectations. (60255)
Media
Media icons are .svg by default: .png icon files in the media library have been replaced with .svg versions, which improves sharpness in different screen resolution devices. An argument for wp_mime_type_icon() to control the file type returned has been added. CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. usage now always returns an .svg file while maintaining backwards compatibility for any extended usage that expects a .png file. (31352)
Rest API
Terms can be assigned when creating attachments. (57897)
Information that is captured by the fatal error handler within a REST API request will now be provided when WP_DEBUG_DISPLAY is set to true. This additional data, appended under the new key error_data, can facilitate more thorough debugging for REST API errors. (60014)
Error handling in REST metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. fields has been improved to collect all errors in a WP_Error object and continue execution after encountering the first error. This enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. enables handling and displaying of multiple errors in a single response, which improves the debugging process. (48823)
original_source and author_text data fields have been added to the templates REST API. (60358)
Shortcodes
Shortcode_parse_atts() will now always return an array, which also improves developer experience as the return value does not have to be manually checked in the shortcodeShortcodeA shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. itself. (59249)
Sitemaps
The โLast Modifiedโ (lastmod) tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) has been added for the individual posts and the homepage entries in the sitemap. (52099)
Themes
A new โtheme_filesโ cache group, setup as a global cache group, has been added to block pattern caches. On a 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, sitenetworknetwork(versus site, blog), there will now be a single cache for block pattern data per theme, which allows block pattern caches to be shared between sites on a network and result in less repeated data in the object cache. (60120)
Users
Profile page color palettes:
On a userโs profile page, the color palette options are now displayed in <div> elements instead of tables.
Styles and scripts that target selectors such as table.color-palette or .color-palette td may need to be updated. To support WordPress versions both before and after this change, a 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. can use the new .color-palette-shade class:
Props to @sabernhardt for the 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.. (53157)
A number of contributors have flagged a stalemate on a couple of different topics for WP6.5 this week. I want to first thank everyone who joined in the discussions on GithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/, SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/, and elsewhere. There were a lot of well-reasoned and important concerns raised and it was an excellent example of the way 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. works in the open. Over the last few days, Iโve discussed the suggested approaches with several coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. and core-editor contributors, including pros, cons, and side effects. Weโve reached a consensus on a path forward on both the Font Library and the issue with Synced Pattern Overrides.
Font Library
The font library portion of this post has been superseded by the post WordPress 6.5 release delayed 1 week, in which itโs announced fonts will be uploaded to the fonts sub-directory of the uploads folder.
Letโs ship the Font Library in WordPress 6.5 contingent on the following, which meet all the criteria and offers a good compromise:
The Font Library will use wp-content/fonts as the default storage folder. While locating fonts at the same level as themes and plugins gives fonts a lot of prominence, itโs worth noting blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes are heading toward composability, allowing users to change collections of fonts, patterns, templates, and color schemes without switching the full theme. Storing fonts at the same level as themes is the first step to breaking down themes in these composable pieces and establishing new first-class concepts and objects within our software.
For installations that donโt support modification of the wp-content directory, the Font Library will use wp-content/uploads/fonts as a fallback location, ensuring we stay true to our project philosophy of designing for the majority while still making the feature available to anyone out of the box without extra steps from the user.ย
The wp_get_font_dir()โ(source) is available to return the location of the siteโs fonts folder. Extenders should use this function as it will allow them to seamlessly integrate with the Font Library regardless of their installed version of WordPress. This allows WordPress to manage the preferred directory location and any factors related to migrating folder locations (e.g., consolidating any remaining installations using wp-content/uploads/fonts to use wp-content/fonts)ย in future versions without extenders also needing to make changes.
For very edge cases, a font_dirfilterFilterFilters 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.โ(source) still allows overriding the font storage folder.
Like wp-content/uploads itself, the fonts directory will not adhere to wp_is_file_mod_allowed / DISALLOW_FILE_MODS to prevent font uploads.
The 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. will reflect these changes upon publication.
The following is still to be explored after WP 6.5:
A means to move the canonical location of the fonts directory. Should the wp-content directory become writable for a site, a safe path forward should be offered for its owners.
Further documentation and context around how to migrate and why.
A roadmap will be published outlining where the project components are headed in relation to establishing new first-class concepts outside of previously established paradigms within the software (like breaking down themes into fonts, patterns, templates, etc.). Why was this such an important and impactful decision? And how might it present itself again in the future?
Synced Pattern Overrides
During beta a change was merged that switches how blocks are named and marked as overridable patterns. This is proving to have unforeseen side effects that need further research and testing. Given that we need to focus on the solution outlined above for the Font Library, letโs revert this and try again in WP6.6.
Letโs do it!
While there may still be some disagreement about these decisions, I ask that we all support this fair and reasonable compromise to ensure the release is ready for all to enjoy the Font Library feature that many contributors have worked so hard on over the last few years. Sticking to our philosophies is important, but we must balance that with releasing early and often. Weโre not perfect, and the only way to know how is to release features for all to use.
WordPress 6.5 RC 1ย was released on March 5, 2024. Thanks to everyone involved and those who helped test.
Forthcoming Releases
Nextย major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5
There are several important changes to our normal development process during the 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). stage. For more, see this post: WordPress 6.5 Release Candidate Phase.
Please continue to test the 6.5 release. See this list ofย key features to test, which was published alongside WP 6.5ย 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.ย 3.
During the meeting, @marybaum confirmed the release team for RC2, scheduled for next Tuesday, March 12, 2024. @akshayar will host, @davidbaumwald will run Mission Control (MC), and @audrasjb will be the 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. (with @hellofromtonya as a backup).
Nextย GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ย release: 17.9
The discussion topic for today centered on: how can we make it easier to follow the decision process of major decisions across the project? This was originally raised by @marybaumย and there is some background discussionย here.
The discussion starts here in Slack. There were no clear next steps identified, but a summary of topics raised include:
We could consider having a way to share more regular status updates for primary features in a release in order to surface key decisions, request feedback, get more visibility of concerns raised, etc.
When key decisions need to be made, how can we ensure the context is easily accessible?
We should be careful about not adding more noise to the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Team blogblog(versus network, site) during an already busy release period.
When key decisions are made, they should be documented in an appropriate place that is easy to reference (e.g., GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/, TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., Core Team blog, etc.)
Highlighted posts
The full list of posts from the last week in Core can be read on the agenda at this link.
Open floor
Due to time, we did not have time for open floor this week.
Welcome back to a new issue ofย Week inย CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. Letโs take a look at what changed onย TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.ย between February 26 and March 4, 2024.
49 commits
70 contributors
54 tickets created
9 tickets reopened
102 tickets closed
TicketticketCreated for both bug reports and feature development on the bug tracker.ย numbers are based on theย Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.
Code changes
Build/Test Tools
Add initial tests for the WP_Filesystem_Directclass โ #57774
Update 3rd-party GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ Actions โ #59805
Use a consistent parameter name between rand_str()and rand_long_str()โ #60401
Address capitalization and docblockdocblock(phpdoc, xref, inline docs) inconsistencies in some test class names โ #59647
Correct capitalization and fix typos in some test class names โ #59647
Use assertSame()in post metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. revisioning tests โ #59655
Bundled Theme
Fix focus outline in Twenty Twenty-Four in the editor โ #60535
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): Label menu subitems when updating menus โ #32728
Docs
Add missing @globalmention in wp_interactivity()โ #60677, #59651
Correct the placement of @globaltags in wp-includes/admin-bar.phpโ #60021
Document some globals in wp-admin/setup-config.phpโ #60021
Document some globals in wp-settings.phpโ #60021
Document the $postglobal in comment feed templates โ #60021
Document the $xmlrpc_loggingglobal in logIO()โ #60021
Document the usage of $_paused_pluginsand $_paused_themesglobals โ #60021
Improve docblock for WP_Block_Patterns_Registry::registerโ #59532
Update WP_Query::tax_querydocblock to reflect that the property can be nullโ #60563
Editor
Prevent infinite loops when filtering the font library folder โ #60652
Simplify sanitization code path in WP_Theme_JSONafter [57496] โ #60360
Update Packages with the latest 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 for 6.5 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). 1 โ #60315, #60665
do not expose protected post meta fields in 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. bindings โ #60651
Interactivity 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.: Rename data_wp_context()to wp_interactivity_data_wp_context()โ #60575
Interactivity API: Revert [57742] pending a GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc.
https://wordpress.org/gutenberg/ package update โ #60575
General
Revert r57698 for WP_List_Util::pluck() โ #59774
Use capital cased singular for Site Icon โ #60686
HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API
Ensure that breadcrumbs are properly retained after seeking โ #58517, #60687
HTML API: Remove superfluous type-coercing empty() check
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
Accessibility: Copy attachment properties on site icon crop โ #60524
Use consistent spacing for the media toolbar in both grid and list view โ #43904
Plugins
Fix an overlap issue with 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. cards dependencies notice โ #60501
Improve plugin dependency adminadmin(and super admin) notices โ #60465
Improve plugin dependency related error messages โ #60465
Plugin Dependencies: Donโt assume API response has a slugproperty โ #60540
Privacy
Update default privacy page content to use latest block markup โ #60530
Query
Remove leading whitespace from certain database queries โ #56841
Quick/Bulk Edit
Ensure the โAllโ checkbox is properly toggled in certain scenarios โ #59121
You must be logged in to post a comment.