WordPress 6.3 Field Guide ![rw-book-cover](https://s.w.org/images/backgrounds/wordpress-bg-medblue.png) ## Metadata - Author: [[Make WordPress Core]] - Full Title: WordPress 6.3 Field Guide - Category: #articles - Document Note: --- tags: - #wordpress - #release-notes - #devrel Author: Make WordPress Core Source: Make WordPress Core blog Reference: https://make.wordpress.org/core/2023/07/18/wordpress-6-3-field-guide/ date created: 2025-08-22 00:00 --- # Title: WordPress 6.3 Field Guide โ€” Deep-Dive Notes ## Table of Contents: - [๐Ÿงญ Overview](#-overview) - [๐Ÿงฑ Block Editor](#-block-editor) - [๐ŸŽจ Bundled Themes](#-bundled-themes) - [๐Ÿ—ƒ๏ธ Cache API](#๏ธ-cache-api) - [โš™๏ธ General: Development Mode](#๏ธ-general-development-mode) - [๐Ÿ˜ PHP Support](#-php-support) - [๐ŸŒ I18N & Media Performance](#-i18n--media-performance) - [๐Ÿงฌ Metadata API](#-metadata-api) - [๐Ÿš€ Performance Improvements](#-performance-improvements) - [๐Ÿงฉ Script Loader](#-script-loader) - [โฌ†๏ธ Upgrade/Install & Rollback](#๏ธ-upgradeinstall--rollback) - [๐Ÿ‘ค Users & Query Caching](#-users--query-caching) - [โฐ Cron API](#-cron-api) - [๐Ÿงน General Code Modernization](#-general-code-modernization) - [๐Ÿ’ฌ Comments & Frontend Perf](#-comments--frontend-perf) - [โœ๏ธ Quick/Bulk Edit](#-quickbulk-edit) - [๐Ÿ”Œ REST API](#-rest-api) - [๐Ÿ—‚๏ธ Deprecated Files](#-deprecated-files) - [๐Ÿ“ฆ External Libraries](#-external-libraries) - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#-notes) - [๐Ÿ“– References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items (Advocacy/Education/OSPO Alignment)](#-action-items-advocacyeducationospo-alignment) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical validity](#-logical-validity) - [๐Ÿ” DARVO Analysis](#-darvo-analysis) - [๐Ÿ” SEO Evaluation](#-seo-evaluation) - [๐ŸŽฏ Conclusion](#-conclusion) ### References: Include a list of sources consulted and cited in the article. - WordPress 6.3 Field Guide: https://make.wordpress.org/core/2023/07/18/wordpress-6-3-field-guide/ - Core Trac references: mentioned inline below by feature areas - Gutenberg changelog (15.2โ€“16.1): release notes on GitHub (contextual) - Related Core dev notes linked from the Make/Core post (contextual) ## ๐Ÿ“ Summary: WordPress 6.3 consolidates 10 Gutenberg releases into core, delivering major advances in the Site Editor, new Block APIs, a Command Palette, and the renaming of Reusable Blocks to Synced Patterns. Core highlights include a new development mode constant, broader caching controls via the Cache API, performance optimizations across metadata, image loading, comments, and query handling, plus script-loading strategies with async/defer. The release raises the minimum PHP to 7.0.0, drops legacy IE support in bundled themes, adds automatic rollback on failed plugin/theme updates, and modernizes string functions. REST API endpoints gain theme block-support flags and template โ€œmodifiedโ€ metadata. Several areas explicitly target accessibility, performance, and modernization. ## ๐Ÿ“– Main Content: The Field Guide quantifies the scope of 6.3: roughly 369 Core tickets with strong emphasis on performance (68), accessibility (23), and modernization (36). It folds in 1,737 Gutenberg PRs across editor experience, including editing modes, layout support, color class improvements, and a Command Palette that streamlines navigation and actions. System-level enhancements include: - Development Mode (core/plugin/theme/all) toggling cache behaviors to match context. - Expanded Cache API capabilities to group, invalidate, and control persistence of cached data. - Performance wins: lazy-loading metadata for key object types, get_pages() refactoring to WP_Query, comments table priming, and micro-optimizations to frequently invoked functions. - Media and i18n boosts: smarter fetchpriority for likely LCP images and improved lazy-loading heuristics. - Reliability and operability upgrades: automatic rollback for failed updates, more robust user query caching, and increased cron memory limits. - Developer experience upgrades: async/defer in Script Loader, modern string APIs, new Quick/Bulk Edit hook, REST properties for block themes and template modified timestamps. - Cleanups: IE support dropped in bundled themes, deprecations like wp-admin/media.php, and updated external libraries. This release balances user-facing speed and editor UX with developer-focused controls and standards compliance. ### ๐Ÿ—’๏ธ Notes - Overview and scale - 369 Core tickets: 127 enhancements, 208 bugs, 34 blessed tasks. - Emphasis: performance (68), accessibility (23), modernization (36). - Gutenberg: 1,737 PRs with 307 enhancements, 481 bug fixes, 55 a11y improvements. - Block Editor - Core includes Gutenberg 15.2โ€“16.1. - Adds: new Block APIs/properties, block editing mode, layout support, color classes. - Command Palette; Reusable Blocks renamed to Synced Patterns. - Bundled Themes - Drop IE scripts/styles; remove skip-link focus fix for IE/old Chrome. - Remove HTML5 Shiv and related conditionals in Twenty Thirteen/Fifteen/Seventeen. - Theme authors can manually re-add if needed. (#56699) - Cache API - New cache groups for queries; per-group expiration and clearing. - Set โ€œlast changedโ€ per group; mark groups as non-persistent. - Better validation for arrays of unique integers. - General: Development Mode - New WP_DEVELOPMENT_MODE with values: core, plugin, theme, all, or empty. - Functions: wp_is_development_mode(), wp_get_development_mode(). - Affects caching differently per mode; visible in Site Health > Info. (#57487, #58646) - PHP Support - Minimum PHP now 7.0.0; recommendation remains 7.4+. (#57345) - I18N & Media - Short-circuit load_textdomain; faster JIT translation loading. - Auto add fetchpriority="high" to most-likely LCP image; improved lazy-loading omission logic for critical images. - Metadata API - Lazy loading for term, comment, and site metadata to cut DB/cache overhead. - Performance - get_pages() now uses WP_Query; simplifies function and leverages query caching. (#55806, #12821) - Comments list table primes related posts to improve performance. (#57802) - _wp_array_get() micro-optimizations; big impact due to high call volume. (#58376) - Script Loader - Native async/defer support via loading strategy passed to wp_register_script()/wp_enqueue_script(). - Guarded to avoid breaking dependencies/inline blocking scripts. - Upgrade/Install - Automatic rollback on failed plugin/theme updates. - Temporary backup directories under wp-content/upgrade-temp-backup/. - Site Health checks for backup dir writability and disk space. - Not a version โ€œrollbackโ€ tool after success; only on failure. - Users & Query Caching - WP_User_Query adds default caching with a new โ€˜user-queriesโ€™ group. - Auto-bypass for specific cases (many fields, users_pre_query filter). - Cron API - Cron memory limit raised to WP_MAX_MEMORY_LIMIT (256MB default) during cron events. - Filter cron_memory_limit to adjust. (#56628) - General Code Modernization - safecss_filter_attr() allows SVG filter URLs. (#57780) - Replace strpos/substr idioms with str_starts_with, str_contains, str_ends_with. (#58012, #58206, #58220) - Quick/Bulk Edit - New bulk_edit_posts action hook to save additional data post-processing without extra AJAX. (#28112) - REST API - Themes endpoint indicates Site Editor support via is_block_theme. (#58123) - Templates controller returns modified datetime via modified field. (#58540) - Deprecated Files - wp-admin/media.php deprecated; redirect to upload.php with warning. (#57612) - External Libraries - npm packages updated to latest. (#58623) ## ๐Ÿ“– References: - WordPress 6.3 Field Guide on Make/Core: https://make.wordpress.org/core/2023/07/18/wordpress-6-3-field-guide/ - WP_Query refactor in get_pages: noted as (#55806, #12821) - Development mode and Site Health: (#57487, #58646) - Theme IE support removal: (#56699) - Cron memory filter: (#56628) - String modernization: (#58012, #58206, #58220) - Performance optimizations: (#57802), (#58376) - REST API updates: (#5812 - Summary: The WordPress 6.3 Field Guide provides an in-depth look at the changes in the 6.3 version of WordPress. The guide covers various areas, including the Block Editor, the bundled theme, the Cache API, the Filesystem API, PHP support, I18N, the Metadata API, performance improvements, the Script Loader, upgrade/install process enhancements, user-related updates, and other developer updates. The guide outlines the specific changes and improvements made within each area, including new features, enhancements, bug fixes, and coding standard updates. It also mentions the deprecations and external library updates included in the 6.3 version. - URL: https://make.wordpress.org/core/2023/07/18/wordpress-6-3-field-guide/ This guide shares more of the in-depth changes that you will find in 6.3 and is published with Release Candidate 1 to help inform WordPress developers, extenders, and others. In Core Trac, there are almost [369](https://core.trac.wordpress.org/query?status=closed&milestone=6.3&group=component&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&order=priority) tickets: [127 of which are enhancements and feature requests](https://core.trac.wordpress.org/query?status=closed&type=enhancement&type=feature+request&milestone=6.3&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority), [208 bug fixes](https://core.trac.wordpress.org/query?status=closed&type=defect+(bug)&milestone=6.3&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority), and [34 other blessed tasks](https://core.trac.wordpress.org/query?status=closed&type=task+(blessed)&milestone=6.3&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority). This time, there are [68 tickets with a focus on performance](https://core.trac.wordpress.org/query?status=closed&focuses=~performance&milestone=6.3&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority), [23 for accessibility](https://core.trac.wordpress.org/query?status=closed&focuses=~accessibility&milestone=6.3&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority), and [36 for modernizing code and applying coding standards](https://core.trac.wordpress.org/query?status=closed&focuses=~coding-standards&milestone=6.3&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority). Gutenberg included in this release has [1737 pull requests](https://github.com/WordPress/gutenberg/commits/wp/6.3): 307 enhancements, 481 bug fixes and 55 accessibility improvements. Changes in 6.3 are spread across 43 core components. Below is the breakdown of the most important ones. #### Block Editor WordPress 6.3 is bringing 10 Gutenberg releases into the core โ€“ [15.2](https://make.wordpress.org/core/2023/02/24/whats-new-in-gutenberg-15-2-22-february/), [15.3](https://make.wordpress.org/core/2023/03/13/whats-new-in-gutenberg-15-3-13-march/), [15.4](https://make.wordpress.org/core/2023/03/22/whats-new-in-gutenberg-15-4-22-march/), [15.5](https://make.wordpress.org/core/2023/04/05/whats-new-in-gutenberg-15-5-05-april/), [15.6](https://make.wordpress.org/core/2023/04/19/whats-new-in-gutenberg-15-6-19-april/), [15.7](https://make.wordpress.org/core/2023/05/04/whats-new-in-gutenberg-15-7-03-may/), [15.8](https://make.wordpress.org/core/2023/05/20/whats-new-in-gutenberg-15-8-may-17/), [15.9](https://make.wordpress.org/core/2023/05/31/whats-new-in-gutenberg-15-9-31-may/), [16.0](https://make.wordpress.org/core/2023/06/14/whats-new-in-gutenberg-16-0-14-june/), and [16.1](https://make.wordpress.org/core/2023/06/29/whats-new-in-gutenberg-16-1-29-june/). You will find new Block APIs, Block properties, Block editing mode, Block layout support, color classes, Command Palette, Reusable Blocks renamed to Synced Patterns, and many other changes in these 10 plugin releases. #### Bundled Theme Bundled default themes have dropped support for Internet Explorer scripts and styles, which also removed skip-link focus fix script for navigating by keyboard in Internet Explorer and old versions of Chrome. In addition, special stylesheets and HTML5 Shiv scripts are not enqueued or included in the `header.php` template for the following themes: Twenty Thirteen (its conditional code is also removed), Twenty Fifteen, and Twenty Seventeen. ([#56699](https://core.trac.wordpress.org/ticket/56699)) Theme developers who wish to continue to support IE can add code snippets to their themes that restore the functionalities. #### Cache API The Cache API has undergone several improvements: introducing new cache groups specific to queries and offering developers greater control over the handling of objects within these groups. You can now set the expiration time for a cache group, clear specific cache groups, set last changed value for a cache group, and declare specific cache groups as non-persistent. With these changes, you can implement your own custom cache invalidation strategies, allowing you to invalidate an entire cache group programmatically. Other improvements include improved validation, ensuring that only an array of unique integers are passed as input. #### Filesystem API Hidden (`.` prefixed) files can now be included in `list_files()` with a new optional `$include_hidden` parameter. Defaults to `false` for backward compatibility. ([#53659](https://core.trac.wordpress.org/ticket/53659)) #### General A new constant `WP_DEVELOPMENT_MODE` is introduced to signify context-specific development mode. The constant can have the value โ€œ`core`โ€œ, โ€œ`plugin`โ€œ, โ€œ`theme`โ€œ, โ€œ`all`โ€œ, or an empty string. The latter of which means no development mode, which is also the default. Two new functions `wp_is_development_mode( $mode )` and `wp_get_development_mode()` are introduced as the recommended ways to interact with this new configuration value. The different development modes affect specific caching functionality; for example, caching is only bypassed during theme development, but not during core development. ([#57487](https://core.trac.wordpress.org/ticket/57487)) The current value of the `WP_DEVELOPMENT_MODE` constant is also accessible under *Tools > Site Health > Info*, in the WordPress Constants section. ([#58646](https://core.trac.wordpress.org/ticket/58646)) ##### PHP Support Support for PHP 5 has been dropped in WordPress 6.3. The new minimum supported version of PHP is 7.0.0. The recommended version of PHP remains at 7.4 or greater. ([#57345](https://core.trac.wordpress.org/ticket/57345)) ([blog post announcement](https://make.wordpress.org/core/2023/07/05/dropping-support-for-php-5/)) #### I18N Improvements include the ability to short-circuit `load_textdomain` filter and reducing loading time for just-in-time translation. The media component has been updated with several enhancements that improve load time performance for content with images. WordPress now automatically adds the `fetchpriority` attribute with a value of โ€œ`high`โ€ to the image that it determines most likely to be the โ€œLCP (Largest Contentful Paint) imageโ€. Other enhancements have been implemented to improve the automatic handling of lazy-loading via the loading attribute to more reliably detect when to omit the attribute from some images. #### Metadata API Metadata API has undergone significant improvement in the area of lazy loading capabilities for term, comment, and site metadata. Lazy loading refers to a technique where data is loaded only when it is actually needed. This reduces unnecessary database queries or cache lookups and improves overall performance. #### Performance The function `get_pages()` has been revised to utilize `WP_Query` internally. This improvement significantly reduces the complexity of the `get_pages()` function by offloading the burden of querying databases and handling the cache to `WP_Query`. ([#55806](https://core.trac.wordpress.org/ticket/55806) and [#12821](https://core.trac.wordpress.org/ticket/12821)) #### Script Loader Support for HTML 5 โ€œ`async`โ€ and โ€œ`defer`โ€ attributes has been added, which allows developers to register scripts with a loading strategy. The loading strategy can be enabled by overloading the `$in_footer` parameter as an array that contains the loading strategy to the `wp_register_script()` and `wp_enqueue_script()` function. If present, the loading strategy attribute will be added to the script tag, as long as it is not a dependency of any blocking scripts, including any inline scripts attached to the script or any of its dependents. #### Upgrade/Install The rollback feature will automatically restore the previously installed plugin/theme version if the update fails. This enhancement makes the update process more reliable and ensures that if a plugin or theme update fails, the previous version can be safely restored and the website remains available to its users. * When updating a plugin or theme, the old version is moved to a temporary backup directory: + `wp-content/upgrade-temp-backup/plugins/[plugin-slug]` for plugins + `wp-content/upgrade-temp-backup/themes/[theme-slug]` for themes. * If the update fails, then the backup kept in the temporary backup directory is restored to its original location. * If the update succeeds, the temporary backup is deleted. To further help troubleshoot plugin and theme updates, two new checks were added to the Site Health screen: * Check to make sure the `upgrade-temp-backup` directory is writable. * Check there is enough disk-space available to safely perform updates. Please take note, the rollback feature cannot be used to โ€œroll backโ€ a plugin/theme to a previous version after a **successful** update (the feature is only applicable to failed updates). #### Users An enhancement has been made to the caching of database queries in `WP_User_Query` class, the only remaining query class lacking this caching capability. All calls to `WP_User_Query` will be automatically cached by default, unless setting the relevant parameters otherwise. You can also globally disable caching by using a filter. A new global cache group named โ€˜`user-queries`โ€˜ is introduced to store the results of queries. Caching will be disabled for user queries that utilize the field parameter and request more than 3 fields. Finally, plugins utilizing the `users_pre_query` hook to modify the returned values will bypass caching and the behaviors will remain the same as before. #### Other Developer Updates #### But wait, there is more! ##### Cron API The cron memory limit has been increased to `WP_MAX_MEMORY_LIMIT` (256MB by default) during cron event processing if the default memory limit is lower than this value. Note that this will not affect external means of processing cron events, such as the wp cron command in WP-CLI, server-level crontab events, or any other cron event processing mechanism that bypasses `wp-cron.php`. A new filter `cron_memory_limit` has been introduced to adjust this value if necessary. ([#56628](https://core.trac.wordpress.org/ticket/56628)) ##### Editor A new `source` attribute is added to Block patterns allowing them to be filtered by that source. ([#58622](https://core.trac.wordpress.org/ticket/58622)) ##### Embeds * Anghami has been added as a trusted oEmbed provider. ([#49850](https://core.trac.wordpress.org/ticket/49850)) * Support for TikTok creator profiles has been added. ([#55784](https://core.trac.wordpress.org/ticket/55784)) ##### Formatting * Added aria content attributes `aria-controls`, `aria-expanded`, and `aria-current` to allowed attributes in KSES. ([#55370](https://core.trac.wordpress.org/ticket/55370)) ##### General * In KSES, the `safecss_filter_attr()` function has been revised to allow the `filter` property to accept a URL, as a reference to an SVG filter element. ([#57780](https://core.trac.wordpress.org/ticket/57780)) * Replacing `strpos()` and `substr()` for code modernization (note: for PHP versions lower than v8.0, the three replacement functions have been polyfilled since WP v5.9): + The usage of `0 === strpos()` or `0 !== strpos()` has been replaced with `str_starts_with()`. + The usage of `false === strpos()` or `false !== strpos()` has been replaced with `str_contains()`. + The usage of `$needle === substr( $string, 0, $length )` has been replaced with `str_starts_with( $haystack, $needle )`. The value of `$length` should be the length of `$needle`. + The usage of `$needle === substr( $string, $offset )` where `$offset` is negative has been replaced with `str_ends_with( $haystack, $needle )`. The absolute value of `$offset` should be the length of `$needle`. ([#58012](https://core.trac.wordpress.org/ticket/58012), [#58206](https://core.trac.wordpress.org/ticket/58206), [#58220](https://core.trac.wordpress.org/ticket/58220)) ##### Performance * In the `WP_Comments_List_Table` class, when the function `get_comments()` is called, the parameter `update_comment_post_cache` is passed with a value of `true`. This primes all the related posts for the displayed comments and improves performance. ([#57802](https://core.trac.wordpress.org/ticket/57802)) * The `_wp_array_get()` function is the most called function on the front end of a site, up to ~23k times on each page-load when using a block theme. A few minor performance optimizations have been introduced, which adds up to a noticeable improvement. ([#58376](https://core.trac.wordpress.org/ticket/58376)) ##### Quick/Bulk Edit A new `bulk_edit_posts` action hook is introduced, which triggers after processing the post data for bulk edit and before it returns its results. For example, it allows developers to save additional data without having to perform any `.ajax()` call. ([#28112](https://core.trac.wordpress.org/ticket/28112)) ##### REST API * The `Themes REST API` can now indicate whether a theme supports the Site Editor by adding an `is_block_theme` property to each theme in the `wp/v2/themes` API response. ([#58123](https://core.trac.wordpress.org/ticket/58123)) * `WP_REST_Templates_Controller` has a new `modified` field for template and template part objects that returns post modified datetime for Templates. ([#58540](https://core.trac.wordpress.org/ticket/58540)) ##### Revisions When a post is saved with an unchanged autosave, the existing autosave will be returned, instead of returning an error. ([#58739](https://core.trac.wordpress.org/ticket/58739)) ##### Themes A new public function `wp_get_remote_theme_patterns()` has been added to query the `patterns` datum from `theme.json` and substitutes current usage of private APIs. ([#58460](https://core.trac.wordpress.org/ticket/58460)) ##### New Action Hooks ##### New Filter Hooks ##### Modified Action/Filter Hooks * `edit_custom_thumbnail_sizes` has been deprecated and replaced with `image_edit_thumbnails_separately` ([#57685](https://core.trac.wordpress.org/ticket/57685)) ##### Deprecated Files * The `wp-admin/media.php` file has been deprecated. Users visiting the file will be redirected to the media library `wp-admin/upload.php`. A user-facing warning will be displayed when the media library is reached via a deprecated link. ([#57612](https://core.trac.wordpress.org/ticket/57612)) ##### External Library Updates The following libraries were updated to the latest versions: * npm packages is being updated to the latest version ([#58623](https://core.trac.wordpress.org/ticket/58623)) [#6-3](https://make.wordpress.org/core/tag/6-3/), [#field-guide](https://make.wordpress.org/core/tag/field-guide/) Props to [@costdev](https://profiles.wordpress.org/costdev/) and [@mikeschroder](https://profiles.wordpress.org/mikeschroder/) for technical review, to [@milana\_cap](https://profiles.wordpress.org/milana_cap/) for review., WordPress 6.3 Field Guide, Make WordPress Core, 01h6y4pzwnhgs5fajxst3yt0yc.