WordPress 6.4 Field Guide – Make WordPress Core
Skip to content
Make WordPress Core
Welcome!
The WordPress
core
Core
Core 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
bug
bug
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.
Create a ticket
in the bug tracker.
Want to contribute?
Get started quickly with tickets marked as
good first bugs
for new contributors or join a
bug scrub
. There’s more on the
reports page
, like
patches needing testing
, and on
feature projects page
Other questions?
Here is a detailed
handbook for contributors
, complete with tutorials.
Communication
Core uses
Slack
for real-time communication. Contributors live all over the world, so there are discussions happening at all hours of the day.
Core development meetings are every Wednesday at
15:00 UTC
in the
#core
channel on
Slack
. Anyone can join and participate or listen in!
This guide shares more in-depth changes that you will find in 6.4 and is published in the
Release Candidate
release candidate
One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see
alpha (beta)
cycle to help inform WordPress developers, extenders, and others. The release
squad
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
ticket
Created for both bug reports and feature development on the bug tracker.
systems in
Trac
and
GitHub
GitHub
GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner.
Some fascinating stats!
Trac
Trac
An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.
has
about 268 tickets
, 113 of which are
enhancements and feature requests
134 bug fixes
, and
21 other tasks
. This time, there are more than
64 tickets with a focus on performance
17 for accessibility
, and
16 for modernizing code and applying coding standards
Gutenberg
Gutenberg
The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc.
’s GitHub repo brings more than 1,400 updates/changes, providing to
core
Core
Core is the set of software required to run WordPress. The Core Development Team builds WordPress.
more than 420 enhancements, 445
bug
bug
A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.
fixes, and
42 accessibility improvements
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
Updated Nov 14, 2023:
overview posts available on
and
performance improvements
in 6.4.
Block
Block
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
WordPress 6.4 is bringing six Gutenberg releases into the core –
16.2
16.3
16.4
16.5
16.6
16.7
. You will find Block
Hooks
Hooks
In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.
, 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
), a feature that provides an extensibility mechanism for Block Themes. This is the first step in emulating WordPress’
Hooks
concept that allows developers to extend Classic Themes using filters and actions.
Introducing Block Hooks for dynamic blocks
From WordPress 6.4, extenders can register their own inserter media categories and provide users with more options from which to choose.
New `registerInserterMediaCategory` API
6.4 brings in a number of notable changes to the
@wordpress/components
package.
Updates to user-interface components in WordPress 6.4
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.
Miscellaneous Editor changes in WordPress 6.4
New
dev note
dev 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.
(November 13, 2023) – For singular content, the output of block templates, for example, (
single.html
or
page.html
) will be automatically wrapped in the main query
loop
Loop
The 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.
Main query loop handling for block themes in 6.4
Admin
admin
(and super admin)
notices
Two new functions abstract the
HTML
HTML
HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.
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.
Introducing admin notice functions in WordPress 6.4
General
A developer note will be added later on the following change:
Introduce
wp_trigger_error()
to complement
_doing_it_wrong()
#57686
HTML
API
API
An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
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
CSS
Cascading Style Sheets.
/class helpers in the Tag Processor, which will make it possible to search for a
tag
tag
A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)
containing more than one class name, or to search for a tag not containing a given class name.
Updates to the HTML API in 6.4
Media
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.
Changes to attachment pages
Additional performance improvements
A significant part of the 6.4 release brings performance improvements and greater efficiency to WordPress. An overview post on
performance improvements
in 6.4 is also available.
Improvements to Object Caching in WordPress 6.4
New functions
get_options()
wp_prime_option_caches()
, and
wp_set_option_autoload_values()
allow an enhanced performance of retrieving options from the database.
New option functions in 6.4
WordPress 6.4 brings many improvements to template loading.
Improvements to Template Loading in WordPress 6.4
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.
Image loading optimization enhancements in 6.4
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.
Script loading changes in WordPress 6.4
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()
Replacing hard-coded style tags with wp_add_inline_style()
More performance-related changes
Taxonomy
Taxonomy
A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format.
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
Themes:
The
TEMPLATEPATH
and
STYLESHEETPATH
constants have been deprecated.
get_template_directory()
and
get_stylesheet_directory()
should be used instead. Trac ticket
#18298
And there’s more!
Some of the additional changes in 6.4 to highlight.
External libraries
jQuery has been updated to version 3.7.1. This release fixes a
regression
regression
A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or
blockers
. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.
from jQuery 3.6.0 that resulted in rounded dimensions for elements in Chrome and Safari. Also, a (mostly) internal Sizzle method, jQuery.find.tokenize that was on the jQuery object was accidentally removed when they removed Sizzle in jQuery 3.7.0. That method has been restored.
Trac Ticket
#59322
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
Clarify the “Add New” links in the Admin for better
Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
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
Props to
swissspidy
for this dev note.
Integration testing requirement change
PHPUnit Polyfills 1.1.0 is required for running integration tests with WordPress 6.4.
Trac ticket
#59510
Props to
jrf
for the information for this dev note.
HTTP
HTTP
HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.
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
Revisions
Revisions
The 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.
Revisions are now supported for post
meta
Meta
Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.
on an opt-in basis. Trac ticket
#20564
Framework for storing revisions of Post Meta in 6.4
Props to
costdev
bph
nalininonstopnewsuk
codente
spacedmonkey
desrosj
flixos90
for input on this
Field Guide
Field guide
The field guide is a type of blogpost published on Make/Core during the release candidate phase of the
WordPress release cycle
. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page.
, and
joemcgill
clarkeemily
cbringmann
akshaya
611shabnam
, and
priethor
for peer review.
Thank you to all those involved in collating, writing, and editing developer notes relating to 6.4.
6-4
dev-notes
dev-notes-6-4
field-guide
Share this:
Share on Threads (Opens in new window)
Threads
Share on Mastodon (Opens in new window)
Mastodon
Share on Bluesky (Opens in new window)
Bluesky
Share on X (Opens in new window)
Share on Facebook (Opens in new window)
Share on LinkedIn (Opens in new window)
I see a new way of adding names to group blocks and specifying more color options in the 6.4 update, this assumes some form of cascading that i’m excited about, but I can’t find anything written about it in the
field guide
Field guide
The field guide is a type of blogpost published on Make/Core during the release candidate phase of the
WordPress release cycle
. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page.
Comments are closed.
Site resources
Email Updates
Enter your email address to subscribe to this blog and receive notifications of new posts by email.
Join 6,695 other subscribers
Recent Updates
Recent Comments
No Replies
Current Release
The current release in progress is
WordPress 7.0
. Planned future releases are listed on
the Project Roadmap
. Feature projects not tied to specific releases can be found on
the Features page.
Regular Chats
Note:
All chats happen on
Slack
Weekly Developer Meetings
: [time relative]Wednesday 15:00 UTC[/time] in
#core
About the Dev Chat
Agendas
Summaries
Performance Weekly Chat
[time relative]Tuesday 15:00 UTC[/time] in
#core-performance
New Contributors Chat
The 2nd and 4th Wednesday of every month at 17:00 UTC in
#core
See all meetings →
Recent Posts and Comments
Team Pledges
2664 people
have pledged time to contribute to Core Team efforts! When looking for help on a project or program, try starting by reaching out to them!
compose new post
reply
edit
go to top
go to the next post or comment
go to the previous post or comment
toggle comment visibility
esc
cancel edit post or comment
US