Versions and Release Cycle
|
This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production. This sub-section’s WordPress bibliography lists the reference material consulted while preparing these pages. |
This page was written against WordPress 7.1.3 (released 2026-10-06; 7.1.4, a security release of 2026-10-28, is
the version to run in production), with WordPress 7.2 in beta (Beta 2 shipped on 2026-10-27; the final release is
planned for 2026-12-08, the date the 7.1.4 announcement gives), the Gutenberg plugin 24.2.0, WP-CLI 2.12.0
and @wordpress/env 12.0.0. WordPress 7.1 requires PHP 7.4 or later and the requirements page recommends
PHP 8.3 or later. Every date and version below was checked on 2026-10-28 against the release archive, the
WordPress Versions page, the roadmap and the Make WordPress Core release pages.
Knowing how WordPress versions work matters to every audience of this sub-section. Site owners and administrators need
to know which updates are safe to apply automatically and how long an older branch still gets security fixes. Theme,
plugin and block developers need to know when an API appeared, how to declare the versions they support, and how to test
against the next release before it ships. In the Lumen Press scenario, the production site follows the latest 7.1.x,
the staging site runs the 7.2 betas and release candidates, and the lumen-catalog plugin declares and checks the core
versions it relies on.
Version numbers: X.Y is the major release
WordPress does not use semantic versioning. The Core Handbook defines a major version by the first two numbers
(6.8, 6.9, 7.0, 7.1) and a minor version by the third (7.1.1, 7.1.2, 7.1.3):
| Kind | Examples | What it contains |
|---|---|---|
Major release (X.Y) |
6.9, 7.0, 7.1, 7.2 |
A full development cycle: new user features, new developer APIs, database schema changes, bundled theme updates, new minimum requirements. Named after a jazz musician (7.1 "Mary Lou", 7.0 "Armstrong", 6.9 "Gene"). |
Minor release (X.Y.Z) |
7.1.1, 7.1.4, 7.0.7 |
Maintenance and security fixes for one major branch. No new features, and no new files are expected to be deployed. Applied automatically by default. |
Pre-release |
|
Development snapshots, betas and release candidates of the next major release. Never for production. |
Nightly build |
|
The current development code, with the Subversion revision appended. |
The step from 6.9 to 7.0 is exactly as big as the step from 6.8 to 6.9: the first digit rolls over after .9 and
carries no extra meaning. A "7.0" is not a rewrite and does not break more than any other major release. Older books
read the numbers the semantic-versioning way. Pro WordPress in particular treats X as the major version, Y as a minor
feature release and Z as a patch, which leads to the wrong conclusion that 6.9 → 7.0 is the only "big" upgrade and that
6.8 → 6.9 is a small one. In WordPress, every X.Y change is a major upgrade that deserves a staging test, and every Z
change is a maintenance or security release that should be applied quickly.
Where the version is recorded
Core keeps its version numbers in wp-includes/version.php, which every request loads. The file is overwritten on each
update and must never be edited:
| Variable | Value in 7.1.3 | Meaning |
|---|---|---|
|
|
The release. Read it through |
|
|
The database schema revision. |
|
|
The minimum PHP version; WordPress refuses to load below it. |
|
|
The minimum MySQL version the code still runs on; the requirements page recommends far newer servers (see Requirements and Hosting). |
Some security plugins overwrite the global $wp_version to hide the version from visitors. That is security through
obscurity (the version can be inferred from asset hashes and file contents anyway) and it breaks code that compares the
global. WordPress 6.7 added wp_get_wp_version(), which reads version.php itself and always returns the unmodified
value.
The quickest way to see the version of a site is WP-CLI. The commands below were run against a Lumen Press staging
container; check-update lists the updates offered by WordPress.org for the installed version:
$ wp core version --extra
WordPress version: 7.1.3
Database revision: 61833
TinyMCE version: 4.9110 (49110-20250317)
Package language: en_US
$ wp core check-update
Success: WordPress is at the latest version.
# The same command on a site still running 6.8.3:
$ wp core check-update
version update_type package_url
6.8.11 minor https://downloads.w.org/release/wordpress-6.8.11-partial-3.zip
7.1.3 major https://downloads.wordpress.org/release/wordpress-7.1.3.zip
The second output shows the two upgrade paths an old site has: a minor update inside its own branch (6.8.3 → 6.8.11, a small partial package) and a major update to the current release.
Release cadence
The cadence has changed several times, so statements such as "WordPress ships three major releases a year" are only approximately true:
-
2024: three major releases (6.5 in April, 6.6 in July, 6.7 in November).
-
2025: in April 2025 the project announced a move to one major release a year, citing contributor resources, and called 6.8 the last major release of the year. The plan was revised and 6.9 shipped in December, so 2025 had two major releases.
-
2026: the published proposal and the roadmap plan three major releases, roughly every four months: 7.0, 7.1 (released on the last day of WordCamp US) and 7.2 (planned near the State of the Word in December). 7.0 was proposed for 2026-04-09 and shipped on 2026-05-20, after its release candidates were extended and real-time collaboration was pulled from it.
The roadmap states that new features are frozen one month before a release, and that projected dates are for rough planning only. Plans for later years are announced on Make WordPress; check the roadmap rather than assuming a fixed rhythm.
Phases of a major release
A major release goes through the same phases each time. The 7.2 dates below come from the Make WordPress Core 7.2 page as of 2026-10-28:
| Phase | 7.2 date | What happens |
|---|---|---|
Alpha |
from August 2026 |
|
Beta 1 (feature freeze) |
2026-10-20 |
No new features or enhancements after this point; only bug fixes. Developer notes and the About page are written. Features that are not "reasonably ready" are moved to the next release. |
Beta 2, 3, 4 |
2026-10-27, 2026-11-03, 2026-11-10 |
Weekly testing releases. |
Release Candidate 1 |
2026-11-17 |
Hard string freeze (translators can complete their work), the |
RC2, RC3 |
2026-11-24, 2026-12-01 |
Only regressions and release blockers are fixed. |
Dry run and code freeze |
2026-12-07 |
A 24-hour code freeze before the release. |
Final release |
2026-12-08 |
The 7.2 package is published and offered as an update. |
Official pages do not agree on the exact final date. The 7.2 release page lists 2026-12-08, and the 7.1.4 announcement of 2026-10-28 repeats that 7.2 is planned for 2026-12-08; the call for volunteers proposed Wednesday 2026-12-09, and the roadmap and the WordPress Versions page list 2026-12-10. Treat the week of 2026-12-08 as the target and follow the Make WordPress Core blog for the final announcement.
Minor releases do not follow a schedule. Maintenance releases usually come a few weeks after a major release (7.1.1 on 2026-09-17, 7.1.2 on 2026-09-22) and security releases ship when they are ready, often for every supported branch on the same day (7.1.3, 7.0.7, 6.9.10, 6.8.11 and others on 2026-10-06). 7.1.4, released on 2026-10-28, is a security-only release three weeks after 7.1.3, and the current version of WordPress: it fixes a remote code execution weakness in the upgrade process, a series of stored XSS issues (block markup, the Interactivity API, Customizer selective refresh, several blocks, privacy data removal requests, user logins), a stored denial of service in the Interactivity API, the disclosure of unpublished Customizer changesets and of Notes to users who cannot edit the post, and it updates the bundled root certificates.
Source: WordPress News: WordPress 7.1.4
What is in the 7.2 beta
Two features that earlier planning described as "upcoming" are present in 7.2 Beta 2: a Secrets API
(wp-includes/secrets.php, storage for credentials such as AI provider keys, managed only through code and WP-CLI in
this release) and the new default theme Ipsum, a minimal block theme that requires WordPress 7.2. Both can still
change or be removed before the final release, so pages in this sub-section describe them as upcoming and nothing in the
Lumen Press code depends on them.
The Gutenberg plugin as the feature pipeline
Most user-facing features (blocks, the Site Editor, Global Styles, the admin screens built with DataViews, the Interactivity API) are developed in the Gutenberg plugin and merged into core during each alpha phase. The plugin ships a release candidate and then a stable version on a two-week cycle (24.1.0 on 2026-09-30, 24.2.0 on 2026-10-14, 24.3.0 RC1 on 2026-10-20). Version 24.2.0 requires WordPress 7.0 or later and PHP 7.4 or later.
The Block Editor Handbook keeps the mapping of Gutenberg versions to core releases:
| WordPress | Includes Gutenberg up to |
|---|---|
6.5 |
17.7 |
6.6 |
18.5 |
6.7 |
19.3 |
6.8 |
20.4 |
6.9 |
21.9 |
7.0 |
22.6 |
7.1 |
23.6 |
This mapping explains two common surprises. A feature described in a Gutenberg release post (for example a block support added in 24.x) is not in core until the next major release that includes that Gutenberg version. And a feature can appear in Gutenberg as an "experiment" for many releases before it ships, or never ship at all; React 19, for example, was deferred beyond 7.1 and continues as an experiment in the plugin. Installing the Gutenberg plugin on a production site gives early access to features, but it is aimed at early adopters and testers: it changes the editor every two weeks, and its experiments are opt-in for a reason. Lumen Press installs it only on staging.
Testing pre-releases
There are four supported ways to run a beta, a release candidate or a nightly build. None of them belongs on a production site.
| Method | How |
|---|---|
WordPress Beta Tester plugin |
Adds Tools > Beta Testing. "Point release nightlies" stay on the current branch and test the next minor release;
"Bleeding edge nightlies" follow |
WP-CLI |
|
Download |
The release archive lists every beta and RC package; the nightly is
|
wp-env or Playground |
Point a disposable local environment at a pre-release package (see below, and Local Development Environments). |
The Lumen Press staging server is moved through the 7.2 cycle with WP-CLI. Every command below was run against a WordPress 7.1.3 site in a container; take a database backup first, because there is no supported way back (see the end of this section):
# Back up first: pre-releases change the database schema.
wp db export "lumen-staging-$(date +%F).sql"
# A specific beta or release candidate.
wp core update --version=7.2-beta2
wp core update-db
wp core version --extra
# WordPress version: 7.2-beta2
# Database revision: 64486
# The latest nightly build (the Subversion revision is appended).
wp core update --version=nightly
wp core version
# 7.2-beta2-64861
Developers who test a plugin against the next release usually prefer a throwaway environment. @wordpress/env accepts
a core value that is a release ZIP URL or a WordPress/WordPress Git reference, so the lumen-catalog repository
keeps one configuration for the current release and one for the beta:
{
"$schema": "https://schemas.wp.org/trunk/wp-env.json",
"core": "https://wordpress.org/wordpress-7.1.3.zip",
"phpVersion": "8.4",
"plugins": [ "." ],
"config": {
"WP_DEBUG": true,
"WP_DEBUG_LOG": true,
"SCRIPT_DEBUG": true
}
}
The beta configuration is a second file, .wp-env.beta.json, selected with --config:
{
"$schema": "https://schemas.wp.org/trunk/wp-env.json",
"core": "https://wordpress.org/wordpress-7.2-beta2.zip",
"phpVersion": "8.4",
"plugins": [ "." ],
"port": 8890,
"testsPort": 8891
}
npm install --save-dev @wordpress/env@12.0.0 # requires Node.js 22.13 or later
npx wp-env start # 7.1.3 on http://localhost:8888
npx wp-env start --config=.wp-env.beta.json # 7.2 Beta 2 on http://localhost:8890
Going back from a pre-release to a stable version is not supported. wp core update --version=7.1.3 --force replaces
the files, and wp core update-db then only rewrites the stored db_version option (from 64486 back to 61833 in the run
above); schema and data changes made by the newer version are not reverted. Restore the database backup instead. The
same applies to the "Re-install" button on Dashboard > Updates.
Security releases and backports
Only the latest major branch is actively supported. As a courtesy, the security team also backports security fixes to older branches, so that sites that cannot upgrade still receive them through automatic minor updates. The 7.1.3 and 7.1.4 announcements say the fixes went to all branches still eligible, currently through 4.7 (for 7.1.4 the backports were still being published as they became ready). The eligible range shrinks over time:
-
security updates for 3.7 to 4.0 ended in December 2022
-
security updates for 4.1 to 4.6 ended in July 2025, after a period with a non-dismissible notice on those sites
-
hardening changes and bug fixes are not backported; only specific security patches are
A backport is not a support promise: there is no guaranteed time frame, and a fix that is too large to backport safely stays in the current branch only. The WordPress Versions page lists the backports with the same date (for example 7.0.7, 6.9.10, 6.8.11, 6.7.10, 6.6.10 and 6.5.13 on 2026-10-06, next to 7.1.3).
Minor releases, including these backports, are installed automatically by default. Sites installed on 5.6 or later
also receive major releases automatically, unless a version-control checkout is detected. The WP_AUTO_UPDATE_CORE
constant selects the policy; Lumen Press production keeps automatic minor updates and takes major releases through
staging:
<?php
// wp-config.php (Lumen Press production): minor and security releases only.
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
true enables development, minor and major updates, false disables all three, and 'minor' enables only minor
updates. A site that runs a development version (a beta, RC or nightly) receives development updates, which is how the
staging site moves from Beta 2 to Beta 3 by itself. Turning automatic updates off completely
(AUTOMATIC_UPDATER_DISABLED) also stops security releases and is discouraged. The full set of constants and filters,
rollback of failed plugin updates and update strategies for teams are covered in
Updates and Auto-Updates.
What’s new from 6.5 to 7.2
None of the older books covers the releases after 6.6. The table lists the changes that later pages of this sub-section rely on; the field guide of each release has the full list.
| Release | Date | Main changes |
|---|---|---|
6.5 "Regina" |
2024-04-02 |
Font Library (install and manage fonts in block themes), Block Bindings API (connect block attributes to custom
fields and other sources), Interactivity API and Script Modules, plugin dependencies ( |
6.6 "Dorsey" |
2024-07-16 |
Section styles (block style variations defined in JSON for whole sections), color and typography sets in style
variations, pattern overrides for synced patterns (Heading, Paragraph, Button and Image), rollback of failed plugin
auto-updates, |
6.7 "Rollins" |
2024-11-12 |
Twenty Twenty-Five, zoom out mode for working with whole patterns, a Block Bindings UI for custom fields, font size
presets in Global Styles, |
6.8 "Cecil" |
2025-04-15 |
bcrypt password hashing (existing hashes are rehashed on the next login), speculative loading of likely next
pages, the Style Book for classic themes with editor styles or a |
6.9 "Gene" |
2025-12-02 |
Notes (block-level editorial comments with email alerts), the Abilities API (PHP), the Command Palette across
the whole admin, Accordion and Math blocks, hiding blocks, fit text, the template enhancement output buffer, PHP 8.5
beta support. The PHP AI Client SDK and the MCP Adapter were published alongside, outside core. Blocks registered with an
|
7.0 "Armstrong" |
2026-05-20 |
AI Client and the Connectors screen (Settings > Connectors; no AI provider bundled), client-side Abilities API,
admin refresh (new color scheme, typography, view transitions), Font Library page for every theme, visual revisions,
navigation overlays, hiding blocks per device, custom CSS per block instance, pattern overrides for custom blocks,
|
7.1 "Mary Lou" |
2026-08-19 |
Responsive styles and configurable viewports in Global Styles and |
7.2 (in beta) |
planned 2026-12-08 |
New default theme Ipsum, the Secrets API (code and WP-CLI only), and the fixes of the beta cycle. Contents are not final until RC1. |
Real-time collaboration did not ship
Real-time collaborative editing was developed during the 7.0 cycle and announced as a 7.0 feature, then removed from 7.0 on 2026-05-08, twelve days before the release, because the approach was not considered robust enough for core (server load and race conditions under real traffic). It was not part of 7.1 either. Work continues on a different, "server-aware" approach with no release scheduled. Articles written during the 7.0 beta that describe live co-editing as a core feature are wrong; what core offers for editorial collaboration is Notes (6.9) and post locking. Collaboration experiments may still appear in the Gutenberg plugin.
PHP compatibility
The Core Handbook keeps a table of the PHP versions each WordPress release supports. It marks each pair as supported or not:
| WordPress | Minimum PHP | Supported PHP | Notes |
|---|---|---|---|
6.5 |
7.0 |
7.0 – 8.3 |
|
6.6 |
7.2 |
7.2 – 8.3 |
PHP 7.0 and 7.1 dropped |
6.7 |
7.2 |
7.2 – 8.4 |
|
6.8 |
7.2 |
7.2 – 8.4 |
|
6.9 |
7.2 |
7.2 – 8.5 |
PHP 8.5 with beta support at release |
7.0 |
7.4 |
7.4 – 8.5 |
PHP 7.2 and 7.3 dropped |
7.1 |
7.4 |
7.4 – 8.5 |
|
7.2 |
7.4 |
not yet listed |
Beta 2 still declares PHP 7.4 as minimum |
"Supported" means core runs on that PHP version; it does not mean every plugin does. The requirements page recommends PHP 8.3 or later, and the Hosting Handbook recommends 8.4 or later; PHP 7.4 has had no security support from the PHP project since November 2022. The practical rule for Lumen Press is the newest PHP version that both the current WordPress branch and every active plugin support. The PHP-side changes between versions are covered in PHP: What’s New and Migration, and server requirements in Requirements and Hosting.
Declaring and checking versions in plugins and themes
A plugin or theme declares the versions it supports in its main file header (a theme in style.css):
-
Requires at least: the oldest WordPress version. Since 5.2 WordPress refuses to activate a plugin when the running version is older, and the plugin installer marks it as incompatible. -
Requires PHP: the oldest PHP version, enforced the same way. -
Tested up to: the newest WordPress major version it was tested with (7.1, not7.1.3). The Plugin Directory shows a notice when it falls several major releases behind, so it is updated after testing each beta cycle.
Inside the code, there are two kinds of checks. is_wp_version_compatible() (5.2+) compares against a release number;
it strips -beta, -RC and other suffixes, so on 7.2-beta2 a check for 7.2 already returns true.
function_exists() or class_exists() checks for an API directly, which also works when the API comes from a feature
plugin and is the better choice when a function exists. The lumen-catalog plugin uses both, in its main file:
<?php
/**
* Plugin Name: Lumen Catalog
* Plugin URI: https://lumenpress.example/lumen-catalog/
* Description: Book catalogue for Lumen Press: books, genres, series and the lumen/v1 REST API.
* Version: 0.1.0
* Requires at least: 6.9
* Requires PHP: 7.4
* Tested up to: 7.1
* Author: Lumen Press
* License: GPL-2.0-or-later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: lumen-catalog
*
* @package LumenCatalog
*/
defined( 'ABSPATH' ) || exit;
/**
* Returns the features that the running WordPress version offers to Lumen Catalog.
*
* Version checks decide on releases; function_exists() checks decide on optional APIs
* that a site may also get from a feature plugin.
*
* @return array<string, bool>
*/
function lumen_catalog_features() {
return array(
// Abilities API (PHP) shipped in 6.9.
'abilities' => function_exists( 'wp_register_ability' ),
// AI Client shipped in 7.0; no provider is bundled, so support is checked separately.
'ai_client' => function_exists( 'wp_ai_client_prompt' ),
// PHP-only block registration (autoRegister) shipped in 7.0.
'php_only_block' => is_wp_version_compatible( '7.0' ),
// The post editor is always iframed from 7.1 onwards.
'iframed_editor' => is_wp_version_compatible( '7.1' ),
);
}
$ wp eval 'var_export( lumen_catalog_features() ); echo PHP_EOL, wp_get_wp_version(), PHP_EOL;'
array (
'abilities' => true,
'ai_client' => true,
'php_only_block' => true,
'iframed_editor' => true,
)
7.1.3
On 7.1.3 every check is true, and wp_get_wp_version() returns the real version even if another plugin has
changed the global. On a site still running 6.8, the header alone stops the plugin:
$ wp core version
6.8.3
$ wp plugin activate lumen-catalog
Warning: Failed to activate plugin. Current WordPress version (6.8.3) does not meet minimum requirements for Lumen Catalog. The plugin requires WordPress 6.9.
Error: No plugins activated.
Raising Requires at least is a decision with consequences: sites below it stop receiving the plugin’s updates from the
directory, including its security fixes. Lumen Press raises it only when the plugin needs an API from a newer release,
and keeps it at most two major releases behind the current one. The plugin header and lifecycle are covered in detail in
Plugin Fundamentals.
Where older books are out of date
-
Version numbers. Reading 7.1.3 as major 7, minor 1, patch 3 is wrong for WordPress, as explained above: 7.1 is the major release and 3 the maintenance release. The same misreading leads to calling 6.x releases "minor" upgrades that need no testing.
-
Release frequency. "Three releases a year" was the plan in 2024 and again in 2026, but 2025 had two; the roadmap is the source, not a fixed rule.
-
Features dated to the wrong release. Block themes and the Site Editor arrived in 5.9, not in 5.4–5.6; plugin dependencies arrived in 6.5, so the claim that plugins cannot depend on each other is outdated; reusable blocks became synced patterns in 6.3.
-
Coverage gap. The three books stop around 6.4–6.6. Everything in the 6.7 to 7.2 rows of the table above (bcrypt, speculative loading, Notes, the Abilities API, the AI Client, PHP-only blocks, responsive styles, the always-iframed editor, PHP 7.4 minimum) is documented only in the official handbooks, field guides and developer notes.
All corrections are collected in Where Older Books and Tutorials Are Outdated.
References
-
WordPress News: WordPress 7.1.3 Maintenance and Security Release
-
WordPress 6.5 "Regina", 6.6 "Dorsey", 6.7 "Rollins", 6.8 "Cecil", 6.9 "Gene", 7.0 "Armstrong" and 7.1 "Mary Lou" release posts
-
WordPress 6.9 Field Guide, WordPress 7.0 Field Guide and WordPress 7.1 Field Guide
-
Make WordPress Core: Real-time collaboration will not ship in WordPress 7.0
-
Make WordPress Project: Proposal: 2026 Major Release Schedule
-
Make WordPress Security: Security updates will cease for WordPress versions 4.1 through 4.6