Miscellaneous developer changes in WordPress 6.3


Added the no-store and private directives to the Cache-Control headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. to prevent caching for logged in users. This prevents sensitive data on logged-in users from being cached and available to others, for example, via the browser history after the user logs out. (#21938)

External Libraries

jQuery has been updated from v3.6.4 to v3.7.0. (#58083)

The latest version of jQuery includes bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, a new method called .uniqueSort(), Sizzle selector engine, and a performance improvement for some use cases when using manipulation methods like .append().

The .uniqueSort() method is used to sort an array or an array-like object of DOM elements and remove any duplicate nodes.

Sizzle, its selector engine, has been included as inlined code and removed as a project dependency, along with the removal of some workarounds for legacy browsers in the process.


Login and Registration

Adding required attributes to username and password input fields

In WordPress 6.3, the WordPress login form includes the required attributes for username and password fields, resolving ticketticket Created for both bug reports and feature development on the bug tracker. #32510. This change, while minor, may have some ramifications for pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party developers.

The change adds semantic clarity to explicitly mark these fields as required, reinforcing the implied expectation that has always been in place for login fields.

Impact for Developers

Plugins that bypass login fields or login via alternative methods using the login page may need to adapt by removing the input fields or removing the required attribute.

Props @joedolson for the dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase..


The fallback return value in get_the_author() is corrected to return an empty string if called before $authordata is set. This fixes PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 “null to non-nullable” deprecation notice in ent2ncr() function that is hooked via the_author filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.. (#58157)


A new plugins_list filter hook is introduced, which can be used to filter the list of plugins (including those that are “must-use / mu”) that are displayed on the WP Adminadmin (and super admin) Plugins screen. (#57278)

function wporg_filter_plugins_list( $plugins ) {
	unset( $plugins['all']['test-plugin/test.php'] );
	return $plugins;
add_filter( 'plugins_list', 'wporg_filter_plugins_list' );

Posts, Post Types

A new post type label item_trashed is introduced, which allows the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor to announce the correct message when an entity is moved to the TrashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days.. (#51387)


Non-block themes without theme.json can opt-in to block link color tools and block border tools via add_theme_support(). (#58597 and #58598)

In the callback function that is hooked to the after_setup_theme action in your functions.php of your theme, add the following inside the function:

opt-in to block link color tools:

add_theme_support( 'link-color' );

opt-in to block border tools:

add_theme_support( 'border' );

Props to @audrasjb for the visual assets.


A new wp_update_user action hook is introduced, which fires after the user has been updated and emails have been sent. (#57843)

add_action( 'wp_update_user', function ( $user_id, $userdata, $userdata_raw ) {
        echo $user_id;
        print_r( $userdata );
        print_r( $userdata_raw );
}, 10, 3 );

Props to @costdev and @mikeschroder for technical review, to @milana_cap for review.

#6-3, #dev-notes, #dev-notes6-3