WordPress 6.4 Field Guide ![rw-book-cover](https://s.w.org/images/backgrounds/wordpress-bg-medblue.png) ## Metadata - Author: [[Make WordPress Core]] - Full Title: WordPress 6.4 Field Guide - Category: #articles - Document Note: --- tags: - #WordPress - #ReleaseNotes - #OpenSource - #Performance - #Accessibility - #BlockEditor - #Developers Author: Abha Thankor (Make WordPress Core) Source: WordPress.org Reference: https://make.wordpress.org/core/2023/10/23/wordpress-6-4-field-guide/ date created: 2025-08-23 00:00 --- # Title: WordPress 6.4 Field Guide — What’s New for Developers, Extenders, and Site Builders ## Table of Contents: - [📌 Introduction](#-introduction) - [🧱 Block Editor](#-block-editor) - [🧾 Admin Notices](#-admin-notices) - [🧰 General (Developer Utilities)](#-general-developer-utilities) - [🧩 HTML API](#-html-api) - [🖼️ Media](#-media) - [⚡ Additional Performance Improvements](#-additional-performance-improvements) - [📜 Script Loader](#-script-loader) - [🎨 Style Loading](#-style-loading) - [🚀 More Performance-Related Changes](#-more-performance-related-changes) - [👥 Users & Admin UI](#-users--admin-ui) - [🧪 Integration Testing Requirement Change](#-integration-testing-requirement-change) - [🌐 HTTP API Changes](#-http-api-changes) - [📝 Revisions for Post Meta](#-revisions-for-post-meta) - [🔗 References](#-references) - [📝 Summary](#-summary) - [📖 Main Content](#-main-content) - [🗒️ Notes](#-notes) - [🗣️ Paraphrase](#-paraphrase) - [📰 Newsletter](#-newsletter) - [✅ Action Items](#-action-items) - [🧪 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: - WordPress 6.4 Field Guide: https://make.wordpress.org/core/2023/10/23/wordpress-6-4-field-guide/ - Gutenberg releases 16.2–16.7 changelogs (overview): https://github.com/WordPress/gutenberg/releases - Trac tickets cited: - Block Hooks (#53987): https://core.trac.wordpress.org/ticket/53987 - Disable attachment pages (DB option): guidance in dev note referenced in Field Guide - Performance: stop double sanitization (#58329): https://core.trac.wordpress.org/ticket/58329 - Deprecate TEMPLATEPATH/STYLESHEETPATH (#18298): https://core.trac.wordpress.org/ticket/18298 - Revisions framework for post meta (#20564): https://core.trac.wordpress.org/ticket/20564 - Clarify “Add New” labels (#47125): https://core.trac.wordpress.org/ticket/47125 Note: You have read this document completely (100%). ## 📝 Summary: WordPress 6.4 ships broad updates spanning the Block Editor (integrating Gutenberg 16.2–16.7), a new extensibility mechanism called Block Hooks, UI enhancements, and stabilized editor APIs. It extends the HTML API with a minimal HTML Processor and Tag Processor helpers, disables attachment pages by default for new sites, and delivers notable performance gains with option priming, improved template loading and caching, script loading via defer in the head, and several theme/taxonomy optimizations. Accessibility improves with clearer “Add New” labels, and developers gain opt-in post meta revisions, deprecations in the HTTP API, and a requirement to use PHPUnit Polyfills 1.1.0 for integration tests. ## 📖 Main Content: - Block Editor: - Six Gutenberg releases land in core, adding Block Hooks to let developers auto-insert blocks via a hooks-like API for Block Themes—analogous in spirit to classic actions/filters. - UI component updates in @wordpress/components; improved background image support, fluid typography, global/block-level layout controls via theme.json, and stabilized InnerBlocks APIs. - HTML API and Media: - Minimal HTML Processor introduces breadcrumb-aware traversal (e.g., search for IMG direct child of DIV) and Tag Processor helpers for class-based queries. - New installs disable attachment pages by default (SEO benefit); controllable via wp_attachment_pages_enabled. - Performance: - New functions: prime_options(), get_options(), wp_set_option_autoload_values() to streamline options loading. - Template loading gains: object caching for WP_Theme::get_block_patterns(); reduced filesystem checks; faster block template folder lookups. - Other: stop double sanitization in get_term; deprecate TEMPLATEPATH/STYLESHEETPATH. - Loading strategies: - Scripts: default to defer; moved to head for earlier discovery yet DOM-ready execution. - Styles: prefer wp_add_inline_style() over manual <style> in wp_head. - Accessibility & UX: - “Add New” labels now include the content type by default for clarity (e.g., “Add New Book”). - Testing & APIs: - Require PHPUnit Polyfills 1.1.0 for integration testing. - Deprecate WP_Http_Curl and WP_Http_Streams classes/filters. - Opt-in framework for post meta revisions. ### 🗒️ Notes - Block Editor - Block Hooks enable declarative insertion points for blocks within theme-defined locations. - Component library updates reduce custom UI code for plugin authors. - Fluid typography and layout controls harmonize responsive design in themes. - HTML API - Breadcrumb-aware parsing helps create precise HTML transformations and audits. - Class-based tag queries simplify complex content migrations and sanitization tasks. - Media - Disabling attachment pages by default reduces thin-content indexing; configurable via DB option. - Performance - Option priming decreases DB round-trips on page load. - Template resolution now uses caching and fewer I/O checks improving TTFB for block themes. - get_block_theme_folders() optimized; new WP_Theme methods help with robust error handling. - Loading - Defer in head balances discovery and non-blocking execution; async remains situational. - Inline styles via API ensure proper dependency order and deduplication. - Users/Admin - “Add New <Type>” improves screen reader contexts and reduces ambiguity. - Testing & HTTP API - PHPUnit Polyfills 1.1.0 ensures forward-compatible test runs across PHP versions. - Deprecated HTTP transport classes cleaned as core no longer uses them. - Revisions - Post meta revisions unlocks granular editorial workflows for structured content. ## 📖 References: - See “References” list above for Trac links and the Field Guide source. ## 🗣️ Paraphrase: 1) Original: “WordPress 6.4 introduces Block Hooks (#53987), a feature that provides an extensibility mechanism for Block Themes…” Paraphrase: WordPress 6.4 debuts Block Hooks (#53987), giving developers a hook-like way to extend Block Themes by automatically inserting blocks in predefined locations. 2) Original: “New WordPress installations will now have attachment pages fully disabled for new sites…” Paraphrase: Fresh installs of WordPress now ship with attachment pages turned off by default, helping prevent thin attachment pages from being indexed, though site owners can toggle this with the wp_attachment_pages_enabled option. ## 📰 Newsletter: This week in WordPress: 6.4 lands with developer-first goodies and faster sites. The Block Editor folds in Gutenberg 16.2–16.7, including Block Hooks—think “actions/filters,” but for placing blocks in Block Themes. Devs also get stabilized InnerBlocks APIs, fluid typography, and component upgrades. Under the hood, performance got the spa treatment: primed options, cached template lookups, and smarter script strategy (defer in the head) for zippier loads. Accessibility improves with clearer “Add New <Type>” labels. Fresh installs ditch attachment pages by default for SEO sanity. Plus, opt-in post meta revisions unlock granular editorial workflows. If you run integration tests, bump to PHPUnit Polyfills 1.1.0. Explore the Field Guide for details and Trac links to dive deeper into the changes. Happy building—and may your TTFB be ever in your favor! - Read more: WordPress 6.4 Field Guide (WordPress.org): https://make.wordpress.org/core/2023/10/23/wordpress-6-4-field-guide/ ## ✅ Action Items: Prompt for aligning each article to your Developer Advocacy and OSPO trajectory: “Using the provided article, analyze and produce: - - Summary: The WordPress 6.4 Field Guide provides an overview of the changes and enhancements in the 6.4 version of WordPress. The guide highlights the improvements made to the block editor, such as the introduction of Block Hooks and the ability for extenders to register their own media categories. It also mentions changes in the admin notices, HTML API, performance, image loading, script loading, style loading, taxonomy, and other areas. The guide concludes with information about improvements to the user interface, accessibility, integration testing, HTTP API, and revisions. - URL: https://make.wordpress.org/core/2023/10/23/wordpress-6-4-field-guide/ This guide shares more in-depth changes that you will find in 6.4 and is published in the Release Candidate cycle to help inform WordPress developers, extenders, and others. The release [squad](https://make.wordpress.org/core/2023/06/05/wordpress-6-4-development-cycle/) and many contributors across the global project have worked to bring these changes, and you can follow this work and add to the contribution using the ticket systems in [Trac](https://make.wordpress.org/core/reports/) and GitHub. Some fascinating stats! Trac has [about 268 tickets](https://core.trac.wordpress.org/query?status=closed&milestone=6.4&group=component&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&order=priority), 113 of which are [enhancements and feature requests](https://core.trac.wordpress.org/query?status=closed&type=enhancement&type=feature+request&milestone=6.4&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority), [134 bug fixes](https://core.trac.wordpress.org/query?status=closed&type=defect+(bug)&milestone=6.4&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority), and [21 other tasks](https://core.trac.wordpress.org/query?status=closed&type=task+(blessed)&milestone=6.4&max=500&col=id&col=summary&col=type&col=status&col=milestone&col=owner&col=priority&order=priority). This time, there are more than [64 tickets with a focus on performance](https://core.trac.wordpress.org/query?status=closed&focuses=~performance&milestone=6.4&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority), [17 for accessibility](https://core.trac.wordpress.org/query?status=closed&focuses=~accessibility&milestone=6.4&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority), and [16 for modernizing code and applying coding standards](https://core.trac.wordpress.org/query?status=closed&focuses=~coding-standards&milestone=6.4&group=component&col=id&col=summary&col=status&col=focuses&col=owner&col=type&col=priority&order=priority). Gutenberg’s GitHub repo brings more than 1,400 updates/changes, providing to core more than 420 enhancements, 445 bug fixes, and [42 accessibility improvements](https://github.com/WordPress/gutenberg/pulls?q=is%3Apr+label%3A%22%5BFocus%5D+Accessibility+%28a11y%29%22+is%3Amerged+milestone%3A%22Gutenberg+16.7%22%20(). Changes in 6.4 are spread across about 45 core components. Below is the breakdown of the most important ones. You can also find all Developer Notes relating to 6.4 as they continue to be published until the release goes live. You can follow them using this [tag](https://make.wordpress.org/core/tag/dev-notes+6-4/). #### Block Editor WordPress 6.4 is bringing six Gutenberg releases into the core – [16.2](https://make.wordpress.org/core/2023/07/14/whats-new-in-gutenberg-16-2-12-july/), [16.3](https://make.wordpress.org/core/2023/07/26/whats-new-in-gutenberg-16-3-26-july/), [16.4](https://make.wordpress.org/core/2023/08/10/whats-new-in-gutenberg-16-4-9-august/), [16.5](https://make.wordpress.org/core/2023/08/23/whats-new-in-gutenberg-16-5-23-august/), [16.6](https://make.wordpress.org/core/2023/09/06/whats-new-in-gutenberg-16-6-06-september/), [16.7](https://make.wordpress.org/core/2023/09/28/whats-new-in-gutenberg-16-7-27-september/). You will find Block Hooks, the ability to register their own media categories, changes to the `@wordpress/components` package, updates for the user interface components, and many other changes. WordPress 6.4 introduces Block Hooks ([#53987](https://github.com/WordPress/gutenberg/issues/53987)), a feature that provides an extensibility mechanism for Block Themes. This is the first step in emulating WordPress’ [Hooks](https://developer.wordpress.org/plugins/hooks/) concept that allows developers to extend Classic Themes using filters and actions. From WordPress 6.4, extenders can register their own inserter media categories and provide users with more options from which to choose. 6.4 brings in a number of notable changes to the `@wordpress/components` package. There are a number of other changes, including a new background image block support, fluid typography, disabled layout controls globally or on a block basis by `theme.json`, Stabilized APIs for InnerBlocks, and much more. #### Admin notices Two new functions abstract the HTML markup generation to reduce the maintenance burden, encourage consistency, and enable argument and message filtering for all admin notices used widely in WordPress Core and the extender community. #### General A developer note will be added later on the following change: Introduce `wp_trigger_error()` to complement `_doing_it_wrong()` [#57686](https://core.trac.wordpress.org/ticket/57686) ##### HTML API WordPress 6.4 includes continued development of the HTML API, including the introduction of a minimal HTML Processor with the concept of breadcrumbs, and makes it possible to, for example, search for images that are direct children of a DIV. Also included in 6.4, is the addition of a couple of CSS/class helpers in the Tag Processor, which will make it possible to search for a tag containing more than one class name, or to search for a tag not containing a given class name. New WordPress installations will now have attachment pages fully disabled for new sites. This will benefit SEO by avoiding attachment pages created by default, which were indexed by search engines and could have led to bad results for users and site owners. The change introduces a `wp_attachment_pages_enabled` database option to control the attachment pages’ behavior. In the dev note, there is information on how to update existing sites. #### Additional Performance improvements A significant part of the 6.4 release brings performance improvements and greater efficiency to WordPress. New functions `prime_options()`, `get_options()`, and `wp_set_option_autoload_values()` allow an enhanced performance of retrieving options from the database. ##### **WordPress 6.4 brings many improvements to template loading.** * Performance gains have been achieved by introducing caching using an object cache in a new method called `WP_Theme::get_block_patterns()`. * Unnecessary checks were removed if a theme file existed in the theme functions that enhanced efficiency and performance. These improvements in the Themes API mean the current theme’s stylesheet directory is checked to ensure it matches the template directory, before further file existence checks are done. Improvements are also in the performance of get\_block\_theme\_folders(). This is through a new method, `WP_Theme::get_block_template_folders()`, and improved error handling. The result is a quicker and more efficient lookup of block template folders within themes. WordPress developers and users can anticipate improved performance, reduced I/O overhead, and a smoother experience when working with block themes. ##### Improved image loading Several enhancements to the `wp_get_loading_optimization_attributes()` function, which provides a central place to manage loading optimization attributes, specifically for images and iframes. ##### Script Loader In WordPress 6.4, script loading strategies are now employed for frontend scripts in core and bundled themes. For the most part, the `defer` loading strategy is used since it is more consistent in its loading behavior, in that a `defer` script always executes once the DOM has loaded; a script with `async` may actually block rendering if it is already cached. Additionally, loading with `defer` has been moved from the footer to the `head` so that they are discovered earlier while the document is loading and can execute sooner once the document is loaded. ##### **Style loading** This dev note highlights the changes made in WordPress 6.4 to style loading. The main focus of the changes was to replace manually created `style` tags printed at the `wp_head` action with calls to `wp_add_inline_style()`. ##### **More performance-related changes** * **Taxonomy:** The double sanitization in the `get_term` function has been stopped. This will prevent the unnecessary calls to `sanitize_term`, which was detrimental to performance. Trac ticket [#58329](https://core.trac.wordpress.org/ticket/58329). * **Themes:** The `TEMPLATEPATH` and `STYLESHEETPATH` constants have been deprecated. `get_template_directory()` and `get_stylesheet_directory()` should be used instead. Trac ticket [#18298](https://core.trac.wordpress.org/ticket/18298) #### And there’s more! Some of the additional changes in 6.4 to highlight. ##### Users WordPress 6.4 brings a number of key improvements to the HTML markup of the `wp-login.php` page to make its structure more optimal and allow developers to have more customized individual styling flexibility. [#30685](https://core.trac.wordpress.org/ticket/30685) ##### Clarify the “Add New” links in the Admin for better accessibility In WordPress 6.4, the default values for the `add_new` label changed to include the type of content. This matches `add_new_item` and provides more context for better accessibility. The default value is ‘Add New Type’ for both hierarchical and non-hierarchical types. If you’ve previously used a label such as: `'add_new' => _x( 'Add New', 'Book', 'my-plugin' )` you are encouraged to change it to `'add_new' => __( 'Add New Book', 'my-plugin' )` Trac ticket [#47125](https://core.trac.wordpress.org/ticket/47125) ##### Integration testing requirement change PHPUnit Polyfills 1.1.0 is required for running integration tests with WordPress 6.4. *Props to [@jrf](https://profiles.wordpress.org/jrf/) for the information for this dev note.* ##### **HTTP API** * HTTP API: `WP_Http_Curl` and `WP_Http_Streams` classes and filters have been deprecated as these classes have not been used in WordPress Core since the introduction of the Requests library. Trac ticket [#58705](https://core.trac.wordpress.org/ticket/58705) ##### Revisions A detailed Developer Note on this change is to follow. Revisions are now supported for post meta on an opt-in basis. Framework for storing revisions of Post Meta – Trac ticket #20564 *Props to [@costdev](https://profiles.wordpress.org/costdev/), [@bph](https://profiles.wordpress.org/bph/),* [@nalininonstopnewsuk](https://profiles.wordpress.org/nalininonstopnewsuk/), [@codente](https://profiles.wordpress.org/codente/), [@spacedmonkey](https://profiles.wordpress.org/spacedmonkey/), [@desrosj](https://profiles.wordpress.org/desrosj/), [@flixos90](https://profiles.wordpress.org/flixos90/) for input on this Field Guide, and [@joemcgill](https://profiles.wordpress.org/joemcgill/), [@clarkeemily](https://profiles.wordpress.org/clarkeemily/), [@cbringmann](https://profiles.wordpress.org/cbringmann/), [@akshaya](https://profiles.wordpress.org/akshaya/), [@611shabnam](https://profiles.wordpress.org/611shabnam/), and [@priethor](https://profiles.wordpress.org/priethor/) for peer review. Thank you to all those involved in collating, writing, and editing developer notes relating to 6.4., WordPress 6.4 Field Guide, Make WordPress Core, 01hdf0wq01ekkgvczyygtyp7vr.