The WordPress coreCoreCore 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 bugbugA 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.
โWhatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
This release adds cropping controls to the Media editor, brings it to the Cover blockBlockBlock 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., and extends responsive style states with aspect-ratio, flex-alignment, and text-shadow controls. Other changes include a minimum WordPress version bump to 6.9, Icon block transforms, and real-time collaboration improvements.
The experimental Media editor gains several cropping improvements: a magnified crop canvas for fine adjustments (79044), crop handles that snap to source pixels (79139), and fixed keyboard resizing for locked aspect-ratio crops (79207). The Cover block now supports the Media editor modal, bringing inline cropping to cover images. (79258)
Unified Device Preview and Resizable Editor
You can now drag the editor canvas to any width, instead of being limited to the Desktop, Tablet, and Mobile presets. The device preview dropdown and the resize handles work together, so you can jump to a preset viewport or fine-tune to an exact width in between. Blocks set to show only on specific viewports respond as you resize, appearing and disappearing at their breakpoints. The preview dropdown also now holds a toggle for responsive editing, making it the central place to both preview your content across screen sizes and make viewport-specific adjustments. (75121)
Other Notable Highlights
Minimum WordPress version. The Gutenberg pluginPluginA 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. now requires WordPress 6.9 or later (79196).
Global Styles adds text shadows. A new textShadow style adds support for configuring text shadows in Global Styles. (73320)
Icon block. Adds flip and rotate controls (77017) and inserts a default icon instead of an empty placeholder (79111).
Real-time Collaboration. Can now be disabled per post type (78984), and the code-editor cursor no longer jumps to the end on remote sync (79005).
ThemeProvider available as a public export. ThemeProvider is now exported directly from @wordpress/theme. (78664)
Changelog
Enhancements
Style Engine: Export public TypeScript types. (79079)
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Primitives: Decouple discovery from a hardcoded endpoint. (79322)
Widget Primitives: Make @types/react an optional peer dependency. (79272)
Components
Add corner radius presets to ThemeProvider. (78816)
Autocomplete: Add Group and GroupLabel primitives. (78901)
Base Styles: Add wpds-var Sass helper for design token fallbacks. (78698)
UI: Use isomorphic layout effects for SSR. (79458)
Update @ariakit/reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org to 0.4.29. (79055)
[DataViewsPicker]: DataViewsPicker.BulkActionToolbar now renders only the bulk-selection info and action buttons. (79180)
theme: Rename bg/fg design token groups to background/foreground. (79098)
Block Library
Add support for aspect ratio and related controls in viewport states. (78795)
Audio: Apply inert directly instead of wrapping in Disabled. (79423)
Classic Block: Port PHPUnit coverage for hiding it from the inserter. (79434)
File Block: Combine audio/video/image to file transforms. (79242)
File Block: Replace on-mount downloadButtonText effect with a default variation. (79236)
Icon Block: Add flip and rotate transformation controls. (77017)
Icon block: Default to coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress./info via block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. instead of an insert-time effect. (79212)
Icon block: Move flip controls to toolbar group. (79192)
Rename Toolbar in editor experiment to match iteration issue. (79074)
RevisionsRevisionsThe 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. screen with picker-activity layout. (77333)
Style states: Use symbols for property keys to avoid clashes. (79210)
Integrate Resizable Editor with Device Preview and add Responsive editing. (75121)
Site Editor
Add xl border radius token for page shell surfaces. (78913)
Correct behaviour of flex child fixed width and introduce max width option. (79073)
Global Styles: Add textShadow style support. (73320)
List View block support: Hide list tab when allowedBlocks is empty, with no children. (78932)
Pattern editing: Show root block identity when editing pattern sections. (79417)
Media
Media Editor Modal: Add a loading and simple error state. (79101)
Media Editor: Magnify the crop to fill the canvas. (79044)
Media Fields: Ensure the current post is always included in the initial options. (79467)
Media editor: Snap crop handles to source pixels. (79139)
Data Layer
RTC: Allow disabling collaboration by post type. (78984)
TextControl: Hard deprecate 40px default size. (79386)
View Config: Request a subset of properties with the _fields parameter. (79355)
Client Side Media
Media: Rename HEIC companion metadata key to source_image. (79307)
Upload Media: Add error taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies., localized messages, and dev diagnostics. (74917)
Vips: Inline WASM with compact UTF-8 binary encoding instead of base64. (79188)
Dashboard
Boot: Run page init modules in initSinglePage. (79394)
Widget Dashboard: Extract into wordpress/widget-dashboard. (79268)
npm Packages
Grid: Prepare wordpress/grid for npm publishing as experimental 0.1.0. (79071)
Widget Primitives: Extract into wordpress/widget-primitives. (79134)
DataViews
View configuration APIAPIAn 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. and REST Endpoint: Make them core ready. (79347)
Plugin
Bump minimum required WordPress version to 6.9. (79196)
Global Styles
Global styles revisions: Replace active text with badge. (79137)
DataFormPostSummary: Fix different useSelect returned values. (79478)
Editor: Disable saving while a non-post entity is being saved. (79069)
Editor: Guard PostViewLink against post types without a labels object. (79160)
Mark all controlled/mode block changes non-persistent. (79350)
Paste: move spaces out of inline formatting elements. (79637)
RTC: Fix code editor cursor jumping to the end on remote sync. (79005)
Revisions: Ignore empty []/{} metaMetaMeta 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. values in the Meta diff panel. (79185)
Style Book: Fix crash when previewing variations for blocks without examples. (79131)
Block Library
Avoid dirtying related navigation entities during passive render. (79000)
Custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.: Fix scrollbar becoming non-functional after switching tabs. (78571)
Gallery: Hide Navigation button type when lightbox editing is disabled. (79147)
Image block: Remove duplicate data-wp-bindโsrcset in the lightbox overlay. (79202)
Image: Fix pasted images stretching when dimensions are preserved. (79067)
Navigation block: Fix responsive style states for typography settings. (79072)
Components
BoxControl: Respect a supplied placeholder via inputProps. (79466)
DataForm panel layout: Fix double-clicking a field row leaving the flyout stuck open. (79348)
DataForm: Fix panel field control overflow clipping and remove button overrides. (79275)
Fix: Custom HTML block preview keeps expanding when iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the userโs browser. uses height:100vh. (78677)
Block Editor
Fix potential crash from โuseBlockToolbarPopoverPropsโ. (79178)
Fix: State styles โ clear background-image when hover sets a solid background-color. (78992)
Grid overlays: Use canvas iframe window for viewport visibility detection. (79255)
RichText: Fix duplicated format wrappers when typing inside an applied format. (79091)
Template Part: Remove restriction on tabs / inspector fills. (79181)
Fix duplicate enqueue breaking the palette in the Site Editor. (79396)
Client Side Media
Vips: Bump wasm-vips to 0.0.18 for high-bit-depth AVIF decoding. (79179)
Icons
KSES: Allow SVG-specific presentation attributes in safe_style_css. (79172)
Style States
Fix responsive element styles front end output. (79135)
Data Layer
Core Data: Cleanup edits matching persisted record on undo/redo. (77100)
AccessibilityAccessibilityAccessibility (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)
Media
Media Fields: Avoid focus loss when detaching the current parent. (79468)
Dashboard
Revert H1 to โDashboardโ and fix heading hierarchy. (79251)
Components
UI Button: Fix loading state in forced colors. (78820)
Performance
Blocks: Migrate Markdown converter from showdown to marked. (77953)
Post Editor
Use the correct directory for recent preload improvements. (79359)
Experiments
Post Editor
Editor Inspector with DataForm โ remove revision panel and add link. (79195)
al: Expand Editor Inspector: Use DataForm experiment to template parts. (79399)
Experimental: Expand Editor Inspector: Use DataForm experiment to templates. (76934)
Experimental: Preserve editor panel visibility in the DataForm post summary. (79441)
Site Editor
Omnipresent Toolbar: Increase top padding in sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. nav title. (79083)
Block Library
Unwrap Classic block migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. notice experiment. (78165)
Documentation
Clarify Core-specific steps when bumping support. (79416)
ConfirmDialog: Document AlertDialog as successor in Storybook. (79293)
Fix Small Typo in block-filterFilterFilters 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. file. (79367)
Panel: Recommend CollapsibleCard for use outside the block inspector. (78863)
Storybook: Reorganize design system introduction for first touch-point usefulness. (79360)
Theme: Add tests for ThemeProvider and useThemeProviderStyles. (79126)
Theme: Drop โwpds-dimension-base from the public token surface. (79254)
Theme: Rename โwpds-color-stroke-focus-brand token to โwpds-color-stroke-focus. (79125)
Theme: Run stylelint plugin tests via the Node API. (79199)
Post Editor
Edit Post: Refactor MetaBoxesSection to use data hooksHooksIn 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.. (79433)
Edit Post: Refactor and cleanup InitPatternModal component. (79190)
Editor: Migrate FlatTermSelector to UI Stack component. (78659)
Editor: Refactor AutosaveMonitor to a function component. (79043)
Fields: Move author fields for templates and template parts. (79395)
Validation: Add a published-dependency audit script. (79094)
Block Library
Blocks: Use positional sprintf placeholders in avatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. Itโs usually a square box that appears next to the userโs name., comment, and search renderers. (79290)
Image block: Simplify metadata syncing logic by removing chained get entity calls. (79469)
Math format: Simplify the onClick handler and use canonical selected-text capture. (79081)
Navigation: Use block context to determine whether Page List is nested in Submenu. (79048)
Automated Testing: Use static value for IS_GUTENBERG_PLUGIN env setup. (79201)
CI: Run PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher unit tests on PHP 8.4 and 8.5. (79260)
Components: Improve Menu unit tests performance by removing sleeps. (79295)
E2E: Support WordPress installs served from a subdirectory. (79166)
Ignore markdown linting for backportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.-changelog MD files. (79392)
devops: Dedicated histories for different node.js versions. (79473)
devops: Separate environments for jest date tests. (79453)
wp-build: Resolve wordpress/build from __dirname in resolve-miss test. (79208)
Build Tooling
Build: Add GUTENBERG_CHECK_INSTALLED_DEPS env var to opt out of installed-deps check. (79068)
Build: Use GUTENBERG_TOKEN when creating the release draft. (79747)
Configure Flakiness.io reporting for end-to-end tests. (79173)
Handle WP.org SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. missing tagtagA 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.) warnings. (79257)
Remove Lighthouse patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing.. (79319)
Remove unused build:Profile-types and component-usage-stats scripts. (79113)
Storybook: Include playground stories and MDX in CI smoke tests. (79454)
design-system-mcp: Remove Storybook dependency in TypeScript types. (79132)
devops: Configure end-to-end report auto-upload for flakiness.io dashboard. (79411)
devops: Upload unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. results to flakiness dashboard. (79414)
Data Layer
Backport changelog and package version updates from wp/latest. (79234)
Block Editor
Block Supports: Relocate text and bg color controls to Typography and Background panels. (77279)
Security
Dependabot: Add npm entry so security update PRs can be rebased. (79076)
Various
View configuration endpoint: Bring back changes from core. (79438)
โWhatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
Gutenberg 23.4 brings resilient media uploads, continued media editor refinements, visual updates for the Site Editor and experimental dashboard, new Grid transforms, and developer-facing improvements for DataViews and design-system foundations and a whole lot more. Thanks to everyone who contributed to the release.
Preparing WordPress for ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org 19
23.4 introduces a new experimental flag that can register version 19 of React runtime scripts: react, react-dom, and react-jsx-runtime. This gives developers a way to test plugins, themes, blocks, and editor integrations against the React 19 runtime before it becomes the default (#79077, #78685, #79142). To test, head to the experiments page /wp-admin/admin.php?page=experiments-wp-admin and activate the โReact 19โ experiment.
Tips for testing: Although React 18 and 19 APIs are practically identical, there are some runtime incompatibilities that had to be resolved with an additional compatibility layer. When testing a pluginPluginA 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. or theme with the React 19 experiment, developers should pay close attention to any warnings and console errors. Test all custom adminadmin(and super admin) pages that your plugin registers and that use React. Test everything in the editor UIUIUser interface that uses refs, ref callbacks, portals, or third-party component libraries. Review your build pipeline to check that usages of react/jsx-runtime link to the externalized WordPress script instead of bundling it.
The Site Editor follows your admin color scheme
The Site Editor sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. and page shell now follow the userโs WordPress admin color scheme instead of always using a fixed dark background. This brings the Site Editor chrome closer to the rest of the admin experience across color schemes (#78397).
Media
The media editor modal received a round of usability and design improvements. Editable attachment fields appear at the top of the details panel (#78896, #78792). The mobile toolbar has been updated to include aspect ratio control, zoom uses plus and minus buttons (#78935, #78928, #79011, #79024).
Client-side media processing introduced an upload progress snackbar to the BlockBlockBlock 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, including batch upload counts (#77249). The upload queue will pause while offline, resuming automatically when the connection returns (#76765).
Columns and Gallery blocks can transform into grid layouts
Block transforms can now target a specific variation of another block. In practice, this enables new transforms from Columns and Gallery blocks into a Grid variation, preserving content while changing the layout type (#78713).
Other notable highlights
UltraHDR image support โ UltraHDR JPEGs are detected during upload, originals are kept unmodified, and resized sub-sizes preserve the ISO 21496-1 gain map (#74873).
New Dashboard experience experiment โ A new Events widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. for upcoming WordPress community events was added (#78553), as well as a responsive grid columns with container breakpoints (#78732).
DataViews configuration becomes filterable โA new filterable APIAPIAn 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. extracts entity view configuration out of the REST controller and into a reusable function (#78977).
Playlist block โ Adds a visualization style selector for waveform styles, plus a track length setting (#76147, #78954).
Login/out block โ This block can now be inserted inside the Navigation Submenu block (#75497).
Block transforms โ For transforms, you can target a variation of another block (#78713).
Real time collaboration (RTC) reliability work โ RTC shipped improvements including a separate document persistence endpoint, collaborator overlay rerenders, polling improvements, forbidden room handling, CRDT typing fixes, and undo manager fixes (#78891, #78636, #78811, #78748, #78756, #78864).
Revert client-side media processing plugin-only gate. (76751)
Enhancements
Tooltip migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.: Boot consumers + shell-level Tooltip.Provider (5/5). (78692)
Upload Media: Add retry with exponential backoff and networknetwork(versus site, blog) resilience. (76765)
Use search_columns=post_title for parent page selector REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think โphone appโ or โwebsiteโ) can communicate with the data store (think โdatabaseโ or โfile systemโ)
https://developer.wordpress.org/rest-api/ searches. (78683)
Data Layer
RTC: Add separate doc persistence endpoint. (78891)
RTC: Re-render collaborators overlay when the block tree changes. (78636)
Maintain absolute stroke-width regardless of icon-size. (78774)
Font Library
Fix Update button staying active when changes are reverted. (78567)
Client Side Media
Extract entity view configuration into a filterable API. (78977)
New APIs
Extensibility
Extract entity view configuration into a filterable API. (78977)
Bug Fixes
Build: Document the hooksHooksIn 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. generated by the wp-build page templates. (78826)
Scripts: Use require.resolve for SVG webpack loaders to fix pnpm compatibility. (78777)
[Content Types]: Fix extra Page padding causing vertical scrollbar. (78661)
env: Replace extract-zip with adm-zip to fix hang on Node 24.16. (78828)
wp-build: Fix black flash on wp-admin pages before hydration. (78493)
Block Library
Common CSS: Avoid false-positive border-style on custom properties. (77476)
Fix playlist metadata edits recreating player. (78876)
Fix type ofย $block_instanceย parameter inย block_core_image_render_lightbox(). (78790)
Paragraph: Strip stale block-support classes from className during align attribute migration. (78731)
Prevent font-size propagation in Navigation items causingย emย compounding. (77419)
ShortcodeShortcodeA shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. block: Fix editor crash when selecting transform menu. (78770)
Writing flow: Delete at end of nested list item should merge into next block. (78742)
Image block: Donโt show crop icon while image is uploading. (79103)
Media
Media Editor: Fix media editor sidebar close button label. (78895)
Media Editor: Fix sidebar overflowing the modal between the small and medium breakpoints. (78931)
Media Editor: Keep crop handles operable on large images. (79011)
Media Editor: Remove lag when toggling the sidebar. (79024)
Elements: Align class name parsing with custom CSS implementation. (79023)
Elements: Guard against non-string className in render filterFilterFilters 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.. (78841)
Preserve nested list when deleting a selection across sibling list items. (78776)
Client Side Media
Media: Skip cross-origin isolation on the classic-theme site editor home route. (78404)
Upload Media: Gate very large images out of client-side processing. (78949)
Plugin
Fix Gutenberg plugin assuming its directory is named โgutenbergโ. (78705)
Fix experiments page form layout with box-sizing and width. (78910)
Data Layer
RTC: Fix CRDT deferred updates resulting in jumbled typing. (78756)
RTC: Fix Yjs undo manager to update UI state when undo stack changes. (78864)
Post Editor
Editor: Fix keyboard activation of the template actions preview. (78641)
Notes: Show default avatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. Itโs usually a square box that appears next to the userโs name. in the indicator when user avatars are disabled. (78849)
Connectors screen
Fix: Block auto-complete for AI API Keys in Connectors. (78946)
Icons
Revert โIcons: Maintain absolute stroke-width regardless of icon-size (#78774)โ. (78854)
Dashboard
Fix Add widget error on non-secure HTTPHTTPHTTP 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. origins. (78850)
Block API
Block Visibility: Keep hide-everywhere working after a block opts out of visibility support. (78780)
AccessibilityAccessibilityAccessibility (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)
Boot navigation: Wrap items in a list role for valid listitem semantics. (78829)
Block Editor
Inserter: Fix error being thrown for spoken message when inserting default/direct block. (79004)
Block Library
Navigation Link: Fix duplicate block htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. attributes in editor. (78973)
Patterns
Fix focus loss when closing the Create pattern dialog from the block toolbar. (78957)
DataViews: Add DataViews components to components manifest. (78960)
Docs: Auto-generate per-block API reference pages from block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (77612)
Docs: Fix stale, incorrect, or missing documentation. (78686)
Docs: Remove stale mobile references from tooling and primitives documentation. (79041)
Format Library: Migrate to recommendedย @wordpress/uiย components. (79059)
Framework: Remove invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. stale nested npm package references. (79014)
Makeย @wordpress/nuxย a no-op compatibility package. (77773)
Remove migrated dependencies from root package.json. (78813)
Tools: Migrate docs/tool into tools/docs workspace. (78870)
Block Library
Fix sprintf format specifiers in post-date and read-more blocks. (78933)
Fix: Escape URLs in block render functions usingย esc_url(). (78912)
Refactor workspace configuration for Babel dependencies. (78974)
Revert navigation morph & playlist commits pushed directly to trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (78857)
RichText: Remove dead native-only prop filtering. (79037)
Data Layer
Compose: Fully deprecate the โpureโ HoC. (78674)
Media: Move client-side media compat file to wordpress-7.1 directory. (78852)
Refactor: Remove jest/test deps from root package.json. (78801)
Remove React Native implementation, framework, and dependencies. (78747)
Post Editor
Editor: Refactor โPostPublishButtonโ into function component. (78737)
Editor: Remove dead native guard in block removal warnings. (79039)
Post RevisionsRevisionsThe 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.: Upgradeย diffย from v4 to v8. (77992)
TypeScript: Migrate server-side-render package to TS. (71383)
Remove orphaned mobile bugbugA 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. report issue template. (79038)
Update AGENTS.md to mention additional pitfalls. (78718)
Update CODEOWNERS for tooling directories. (78874)
Build Tooling
Build Scripts: Fix Windows path handling in dev script. (78939)
CI: Skip plugin repo release when SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase.tagtagA 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.) already exists. (78476)
Lint dependency version consistency with Syncpack. (77950)
Release: Drop mobile-specific changelog omit rules. (79042)
Skip including inactive or experimental routes when building for WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. (76715)
feat: Migrate performance results to tools release. (78761)
โWhatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
This release ships the new modal-based media editor as the default cropping experience, advances the experimental customizable WordPress dashboard with five new widgets and significant layout polish, and upgrades the editor to ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org 19. Responsive styles now extend to individual blockBlockBlock 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. instances, and Notes blocks gain support for multiple discussion threads. Other changes include DataViews adopting @wordpress/theme design tokens, accessibilityAccessibilityAccessibility (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) refinements across the RevisionsRevisionsThe 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. interface, continued Real-time Collaboration reliability fixes, and broader preload coverage for faster post editor loads.
Table of contents
Media editor modal becomes the default crop experience
The Media editor modal replaces the existing inline cropping tool in the Block Editor. The modal pattern keeps the familiar Crop button entry point, and brings freeform and aspect-ratio cropping, flip, fine-grained and snap rotation, and metadata editing into one dedicated workflow. (78653)
Experimental customizable WordPress dashboard
The experimental customizable WordPress dashboard โ a widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.-based surface available for testing behind an experimental flag in the Gutenberg pluginPluginA 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., allowing users to add, move, resize, and rearrange widgets. It introduces a complete set of widgets โ Welcome, Quick Draft, Activity, Site Health, Site Preview, and more โ that automatically adapt to different tile sizes. You can fully customize your dashboard by choosing which widgets to display, arranging the layout, adjusting the number of columns, and resizing each widgetโs width and height. (77616)
This change is experimental; to give it a try, first go toย WP-Adminadmin(and super admin)ย >ย Gutenbergย >ย Experimentsย and enable โNew Dashboard experienceโ.
Responsive styles for block instance
Responsive styles for block instances (78384) building on 23.2โs responsive Global Styles, the Block Style States APIAPIAn 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. extends to the per-instance level (76491). Block instance responsive styles include layout styles (78543) and an Inspector that shows only the relevant settings when a style state is selected. (78280) (78658, 78763, 78670, 78709)
Other Notable Highlights
Real-time Collaboration improvements โ Notes blocks support multiple threads (75147), better handling of oversized payloads (>16 MiB) and connection-loss states (77724), protocol-mismatch error handling (76991), fewer refresh storms when peers edit (78483), and a mobile fix for Edit/Join row actions in the post list (78597).
DataViews adopts @wordpress/theme design tokens (75204) โ the first significant in-codebase adoption of the design tokens package. A new โIntroductionโ Storybook page has been added for the tokens themselves (78449).
Accessibility wins โ Image block gains a โMark as decorativeโ toggle (78064); Revisions diff markers get higher-contrast stripes and scale with user text-size preferences (78473, 78273, 78393); Breadcrumbs block hides separators from screen readers (78524).
Performance โ Optimized block-supports CSSCSSCascading Style Sheets. class rendering (78217), lazy-fetched user pattern categories (78568), shared window listeners across block instances (78310), shared MediaQueryList listener in useMediaQuery (78297), and broader preload coverage on edit-post load (78508, 78565).
Components migrations โ Continued migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. of __experimentalText, __experimentalHStack, and __experimentalVStack to their stable @wordpress/ui counterparts (78155); Tooltip migration progressed across block-editor, editor, and DataViews consumers (78411, 78466, 78470).
React 19 upgrade (61521) โ Gutenberg is now built against React 19. Most code keeps working unchanged; plugin authors using removed legacy patterns (string refs, ReactDOM.render fallbacks, defaultProps on function components) should review Reactโs upgrade notes.
Changelog
Features
Post Editor
Notes: Support multiple note threads per block. (75147)
UI Card: Full bleed as headerHeaderThe 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. hero image and content cover. (77856)
Visually align Notice from @wordpress/components with Notice from @wordpress/ui. (78231)
Collab SidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.: Swap near-identical pink for red in avatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. Itโs usually a square box that appears next to the userโs name. palette. (78299)
Media Editor: Make the modal the default crop experience. (78653)
RTC: Provide PROTOCOL_MISMATCH error handling. (76991)
useDialog: Handle Escape via React onKeyDown so cascade works through portals. (78433)
Block Library
Block/Tabs: Fix editor dirty state on reload by removing unnecessary mount-time attribute init. (78339)
Breadcrumbs block: Hide separator from screen readers. (78524)
Fix โInvalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. Dateโ when clicking on Now in DateTimePicker on Date Block. (78284)
Fix Tabs block losing added tabs when the editor is reopened. (78250)
Fix: Discard unsaved HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block changes on cancel. (78580)
Image: Preserve width/height when converting Classic blocks to blocks. (78610)
Navigation Link: Preserve custom labels during link updates. (77186)
Navigation: Restore block_core_navigation_submenu_render_submenu_icon() as deprecated shim. (78484)
Prevent images from appearing squished when only one dimension is set. (70575)
Post Editor
Editor: Disable Visual Revisions when classic metaMetaMeta 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. boxes are present. (78249)
Editor: Fix Visual Revisions meta keys overlap. (78156)
Editor: Use _n() for revisions count aria-label. (78382)
Fix: Register user-defined taxonomies after user-defined post types. (78497)
Fix: Show collaborators when the top toolbar is active. (78049)
Global styles revisions: Ensure stylebook shows revision previews. (78490)
Script Loader: Defer single-page admin init until DOMContentLoaded (TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.#65103). (78136)
Upload Media: Render srcset on the front end for client-side-media uploads. (78359)
Block Editor
Block Inspector: Hide Styles tab in preview mode. (78230)
Block Toolbar: Prevent position shifts when using mover control. (77798)
Fix inconsistencies in feature selector processing part 2: Pseudo block instances. (78326)
Fix: Properly merge schema during mergeSchemas part in getBlockContentSchemaFromTransforms. (70615)
List View: Place caret at end of block when selecting. (76797)
Unset grid span defaults with viewport states enabled. (78709)
Data Layer
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Avoid duplicate ID-less entity permission requests. (78262)
Fix: Disable collab sync when incompatible meta boxes are present. (78145)
RTC: Fix cursor awareness / presence bugbugA 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. in nested rich text elements. (77673)
RTC: Fix block refresh on every update when a peer edits within the code editor. (78483)
RTC: Sync the content even if itโs a function. (76796)
Real-time Collaboration: Use minimal save payload in persistCRDTDoc. (77050)
Media
Media Editor Modal: Only show the crop active state when using keyboard. (78266)
Media Editor: Anchor cursorless zoom (slider/keyboard) at crop center. (78385)
Media Editor: Enforce a minimum crop size in the image editor. (78268)
Media Editor: Scope keyboard shortcuts to the modal. (78322)
Media Fields: Fix filename truncation with Tooltip. (78453)
Collaboration
RTC: Fix Edit/Join row action invisible on mobile in post list. (78597)
RTC: Fix connection lost error modal when /wp-json/wp-sync/v1/updates exceeds 16 MiB limit. (77724)
Global Styles
Fix block preview for responsive style states. (78538)
Fix inconsistencies in feature selector processing part 1: Global styles. (78276)
Client Side Media
Upload Media: Stop propagating -scaled to sub-size filenames. (78038)
VIPS: Remove dead batchResizeImage and vipsBatchResizeImage exports. (77975)
Paste
Keep <img> inside <a> when pasting plain-text HTML. (78015)
Image Editor: Focus return after closing image crop modal. (78711)
Revisions: Increase diff marker stripe contrast to 75% primary color proportion. (78473)
Revisions: Scale diff markers width with user text-size preference. (78273)
Revisions: Use CSS outline as secondary non-color indicator for diff blocks. (78393)
Block Library
Image block: Add โMark as decorativeโ toggle for accessibility. (78064)
Image: Fix missing aria-label on lightbox trigger button for single images. (78426)
Performance
Block supports: Optimize custom CSS class rendering and parsing. (78217)
Fix performance tests when running against old reference commit. (78288)
Post Editor
Edit Post: Hoist setupEditor to run before root.render. (78581)
Edit Post: Consume preload cache before React mount. (78508)
Editor / Block Editor: Lazy-fetch user pattern categories. (78568)
Post Taxonomies: Drop redundant per_page: -1 from taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. queries. (78569)
Docs: Update iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the userโs browser. editor migration guide for WordPress 7.0/7.1. (78401)
Editor: Inline text editor toolbar z-index. (78309)
REST: Guard setAccessible() behind PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher < 8.1 in block-editor settings controller. (78478)
Use WCIcon alias for component Icon imports. (78366)
Use WCTooltip alias for component Tooltip imports. (78396)
Block Editor
Fix additional issues with block registration types. (78416)
Migrate __experimentalText, __experimentalHStack, and __experimentalVStack to Text and Stack. (78155)
Refactor: useMemo on elements and useCallback is back on resetAllFilter. (78329)
Simplify component ESLint rules and extend to routes/widgets. (78519)
Update the BlockAttribute typedef to allow for multi-type attributes. (78517)
Guidelines
Add data-slug attribute to settings list items. (78676)
Fix flaky tests (publish-panel.spec.js focus assertion before panel close completed). (77893)
Guard PHP unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. to avoid failures on old WP versions. (78547)
Perf tests: Capture loading durations before stopTracing(). (78294)
Perf tests: Disable Playwright tracing to remove snapshot overhead. (78295)
Perf tests: Save Chromium traces as CI artifacts. (77974)
Performance tests: Fix template click, delete pages at startup. (78193)
Post Editor perf test: Remove unwanted actions from timed area. (78323)
Preload: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. user global styles entry for classic themes on WP 6.9. (78546)
RTC: Add command to run in WebSockets mode. (78363)
Tests: Add timezone-mock to test/unit/package.json. (78277)
The addition of a free-form image cropper in the BlockBlockBlock 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 has been a long-standing feature request. A GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/ experiment that integrates this and other image editing features in a โMedia EditorModalโ is ready for testing and feedback.
What is it?
The Media Editor Modal replaces the existing inline cropping tool in the Block Editor. The modal pattern keeps the familiar Crop button entry point, and brings freeform and aspect-ratio cropping, flip, fine-grained and snap rotation, and metadata editing into one dedicated workflow.
Under the hood, the modal consumes a coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. collection custom tools and components that will eventually live in a WordPress package. This will remove the reliance on third-party cropping libraries.
Why the change?
Image cropping in the Block Editor hasnโt changed much since its introduction. The existing inline image cropper is built on top of the react-easy-crop library. This implementation has a couple of constraints:
itโs limited by whatโs achievable in the editor canvas and block toolbar, and
the library itself has a narrow set of features.
Why build our own library? Well-maintained, open sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. alternatives that do most of what users expect are few and far between. Furthermore, thereโs a general preference for a WordPress-native surface that:
has all the features we want โout of the boxโ such as aspect ratios, freeform cropping handles, intuitive zooming, flip and rotation,
includes all the usability features weโd expect such as touch and keyboard support, and
is extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software. in ways idiomatic to the WordPress ecosystem.
There was an attempt to build a custom, editor-first cropper component, but it was abandoned. Rather than developing separate, one-off flows across blocks, the Media Editor Modal aims to provide a consistent foundation for both a new Media Library experience and various editor contexts, and also serve as platform for building more sophisticated experiences later.
How to test
If youโre familiar with the Gutenberg plugin development environment, you can check out trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. right now and enable the Media Modal experiment from the experiments page at /wp-admin/admin.php?page=experiments-wp-admin
Update: #78653 merged, which makes the modal the default experience. No requirement to enable any experiment.
The quickest way to test is via Playground. Hereโs a link that loads up Playground with Gutenberg Trunk and the Media Editor Modal active:
The steps are provided just in case you need structure. Donโt feel any need to follow any or all of them.
The important question is whether the modal is solid enough as a replacement for the Image block crop flow, and whether you notice any bugs, UXUXUser experience gaps or unexpected behaviors.
Basic crop flow
Open the modal from an Image block.
Resize the crop area.
Pan and zoom the image.
Rotate or flip the image.
Save.
Confirm the block updates to use the edited image.
Details editing
In a saved post with a title, upload or insert an image.
Open the modal from the Image block.
Switch to the Details tab.
Confirm Author and Attached to fields are populated with your author handle and the current postโs title.
Update alt text and caption.
Save.
Confirm the media item updates.
Confirm the Image block updates when its existing alt/caption values were empty or matched the original media values.
Existing custom block values
Add an Image block.
Manually enter custom alt text or a custom caption in the block.
Open the media editor modal.
Change the attachmentโs alt text or caption.
Save.
Confirm custom block-level values are not unexpectedly overwritten.
Keyboard
Open the modal.
Use Tab to move through the crop area, crop handles, toolbar controls, sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. controls, Save, Cancel, and Close.
Use arrow keys to move or resize the crop area.
Confirm focus is visible and does not get lost.
Try undo/redo with keyboard shortcuts.
Confirm Escape behaves as expected when there are unsaved changes.
Touch gestures
On a touch device, open the modal from an Image block.
Test drag panning, pinch zoom, and crop area handle dragging for responsiveness and smoothness.
Ensure toolbar actions like rotate, flip, undo, redo, and reset are tappable.
Sharing your feedback
Comments on this post are a great way to share feedback, but if youโd like to jump into Gutenberg feel free to leave feedback on this tracking issue as itโs the main one covering current tasks for the experimental modal. Weโd love to know for example:
Did the modal open where you expected it to?
Was cropping understandable without extra instruction?
Did anything feel slower, confusing, or broken?
Did the image tools, including Save and Cancel behave as youโd expect?
Out of scope
The goal is to make the basic crop/edit workflow solid first, not to ship every image editing feature. Some related work is still being explored separately, for example:
Manual pixel crop controls.
Restoring original image.
Improving undo/redo history states.
Broader image editor extensibility for image filterFilterFilters 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. and/or AI integration options.
Thank you for making it this far, and thanks in advance for testing.
โWhatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
This release introduces responsive global blockBlockBlock 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. styles with states, brings further improvements to the experimental Content Types management screens, and adds a wave of accessibilityAccessibilityAccessibility (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) refinements to the RevisionsRevisionsThe 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. interface. The @wordpress/ui package gains a new SelectControl and motion design tokens, while modals now render as bottom sheets on mobile. Other changes include shortcodeShortcodeA shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.-to-block transforms, Grid component enhancements, Connectors refinements, and continued Real-time Collaboration reliability fixes.
You can now customize how individual blocks look on different screen sizes, right from Global Styles.
Head to Global Styles โ Blocks, and youโll find a new States dropdown on each block with Tablet and Mobile options. Select a state, make your style changes, and theyโll apply only to that breakpoint.
This allows theme developers and site builders to define different block styles depending on viewport size and interaction state, paving the way for more adaptive designs managed entirely through the editor. (#77513)
Add motion design tokens (duration and easing) to wordpress/theme
Adds motion design tokens toย @wordpress/themeย โ a set ofย durationย andย easing curveย tokens for standardizing animation timing across components โ and adopts them inย Dialog,ย Modal, andย Menu/DropdownMenu.
Modal renders as a bottom sheet on mobile
The Modal component now adapts to narrow viewports by rendering as a bottom sheet, providing a more touch-friendly experience on phones and small tablets. (#77956)
With the new position, important actions are easier to reach with one hand.
Other Notable Highlights
Content Types management improvements (experimental): The experimental Content Types screens are extended with several refinements: taxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. visibility fields let you control where taxonomies appear (#77835), slugs are now auto-filled from the singular label (#77938), and new term/post type count fields provide an at-a-glance view of content usage (#78157). Additional quality-of-life actionsโduplicate, view, and quick-editโround out the management experience.
SelectControl added to @wordpress/ui. A new SelectControl primitive joins the design-system package, offering a consistent select input across the editor and adminadmin(and super admin) surfaces. (#77809)
Shortcode-to-block transforms. The Embed block now recognizes [ embed ] shortcodes (#77937), and the Shortcode block offers block-specific transforms when the text matches a registered shortcode (#77944).
Grid component improvements. The @wordpress/grid package gains a renderResizeHandle render prop (#77811), an edit-mode overlay for DashboardGrid and DashboardLanes (#78199), document cursor lock during resize (#77813), and resize-runaway prevention near the viewport edge (#77854).
Revisions accessibility improvements. Diff markers now enforce a 24ร24 px minimum target size per WCAGWCAGWCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) https://www.w3.org/TR/WCAG21/. 2.5.8 (#77671), use diagonal stripe patterns to avoid color-only distinction (#77904), and display tooltips (#77690). The revisions slider now paginates by 100 per page for better performance (#77200).
Real-time Collaboration reliability fixes. Title divergence between users on page refresh has been resolved (#77666), a race condition on room creation that could split the update log is fixed (#77675), and find_canonical_storage_post_id() no longer returns null incorrectly (#78053).
Connectors refinements.PluginPluginA 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. registration now supports an is_active callback (#77897), settings are only auto-registered when the referenced plugin is actually installed and active (#77273), and the Connectors page works on read-only file systems (#77521).
Changelog
Features
Block Editor
Try responsive global block styles with states. (77513)
Enhance the Connectors page on the read-only file system. (77521)
Enhancements
Components
Add SelectControl component to wordpress/ui. (77809)
Add motion design tokens (duration and easing) to wordpress/theme. (76097)
Button: Align link variant underline with Link and ExternalLink. (77842)
docgen: Automatic documentation handle for TypeScript overloads. (77558)
ui/Tooltip, ui/IconButton: Add positioner slot APIAPIAn 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.. (78089)
Shortcode: Offer block-specific transforms when text matches a registered shortcode. (77944)
i18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Add context to table headerHeaderThe 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./footer label. (78007)
Block Editor
Fix the target block for copying direct insert block attributes. (77877)
Make Block Inserter search input sticky while scrolling. (77698)
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Types: Bootstrap registry into the dashboard client. (77917)
Widget Types: Replace bootstrap with resolver. (77847)
npm Packages
Build: Add widgets/ folder support to wordpress/build. (77347)
Taxonomy edit route: Declare @wordpress/base-styles as dependency. (77901)
Bug Fixes
Components
ColorPalette: Fix duplicate-key warnings and incorrect selection with identical color values. (78004)
Fix: Only auto-register settings if the plugin the connector references is installed and active. (77273)
Increase the right padding of the callout for the mobile layout. (78126)
Block Library
Embed: Tighten raw URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org transform isMatch. (78021)
Fix: The buttons block shows the inserter picker when multiple allowed blocks are registered. (77858)
Fix: Shortcode block does not render in Navigation Overlay. (77511)
Post Editor
Editor: Paginate revisions slider by 100 per page. (77200)
Notes: Keep tall floating threads scrollable on short content. (77821)
defaultRenderingMode value not respected when changed using block_editor_settings_all. (77870)
Site Editor: Preserve non-global editor styles in pattern previews. (77957)
Preserve the leading number when pasting single-line text like dates. (77949)
Add aria-label to the Revisions button in the Post Summary sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (78140)
Widget Types: REST endpoint and coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-data entity. (77987)
Image editor: Suppress image editor undo/redo while a crop interaction is active. (77930)
Image editor: Update sidebar aspect ratio and resize controls. (78046)
Media Editor Modal: Improve image cropper interactions (undo/redo, pan, zoom, rotation), expand keyboard shortcuts and accessibility (focus borders, landmark regions, panel headings), and fix empty metadata fields. (77782, 77826, 77863, 77871, 77875, 77878, 77898, 77899, 78078, 78189). This is an MVPMinimum Viable Product"A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia version, and itโs ready for testing here: https://make.wordpress.org/core/2026/05/21/media-editor-modal-call-for-testing/
Media editor: Replace fine-rotation slider with RotationRuler. (77906)
Grid: Add a warning about being under development. (78022)
Backend default layout filterFilterFilters 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.. (78040)
Add Classic block migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. notice. (78090)
Image block: Try syncing updated metadata fields (alt and caption) from the media editor. (78139)
Media Editor Experiment: Add a route, based on the media editor modal, and refactor the modal components. (77994)
Documentation
Block Editor: Clarify logic for โdirectInsertโ inner blocks setting. (77873)
Design System: Add missing packages to Storybook introduction. (77504)
Docs: Shortcode transforms with wrapped content + rawHandler JSDoc. (78003)
Document how to ignore VSCode Workspace Settings. (77608)
RTC: Clarify WPBlockSelection type and link to duplicates in other packages. (77862)
Revise README for FocalPointPicker component to use object-position. (77722)
UI: Add component status notes to Storybook. (77988)
UI: Add missing Portal subcomponents to Storybook. (78108)
UI: Improve documentation for compound exports. (78212)
Update nvm installation script to version 0.40.4. (77996)
Update references to the default branchbranchA directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".. (77606)
Code Quality
Add a 1-day minimum release age to npm installs. (78191)
Script Modules: Guard setAccessible() calls behind the PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher < 8.1 check. (78137)
Inline z-index values across Block Manager, metaMetaMeta 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. boxes, pattern chooser, sticky search, layout, and Popover, and remove local z-index helper entries. (77753, 77759, 77772, 77806, 77807, 77808, 78180, 78181)
Post Editor
Editor: Refactor โPostPublishPanelโ into a function component. (78083)
Edit Post: Fix suppressed errors in the Layout component. (77940)
Notes: Separate intent from mechanics in openTheSidebar. (78039)
Fix the flaky Menu space key unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.. (77972)
Fonts: Move admin menu compat from experimental to WordPress-7.0. (78227)
Block Editor
Add translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. context for โExit patternโ. (78158)
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. changes in core. (78103)
Refactor client-side style states to use nodes. (78000)
Refactor accordion to use CollapsibleCard. (77903)
Classic Block: Use onReplace prop for migration actions. (78113)
Data Layer
ESLint: Replace eslint-plugin-react-compiler with eslint-plugin-react-hooks. (69962)
RTC: Add regressionregressionA 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. tests for the data corruption bugbugA 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. due to the cursor scope issue. (77662)
Call for RTC testing from hosts. Submissions still welcome. Thank you to Bluehost, Kinsta, XServer, GoDaddy,WordPress.comWordPress.comAn online implementation of WordPress code that lets you immediately access a new WordPress environment to publish your content. WordPress.com is a private company owned by Automattic that hosts the largest multisite in the world. This is arguably the best place to start blogging if you have never touched WordPress before. https://wordpress.com/, Ionos, and any other hosts for helping test RTC.
A decision about RTC introduction is about to be finalized (and it was finalized). See ticketticketCreated for both bug reports and feature development on the bug tracker.#64696.
@jorbin proposed to run a dedicated 7.0 scrub after the chat.
@juanmaguitar will host a dedicated GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/ scrub on Thursday.
@jorbin and @audrasjb asked about the Field GuideField guideThe 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. timeline. It is currently under review and should be published ASAP.
@joefusco asked: โIs there a process for getting systems team feedback on the RTC custom table?ย The code and testing infrastructure are ready, including a standalone testing pluginPluginA 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. that can run on production sites without changes to trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision..ย Iโm not sure who to direct this to or what the next gate is in the process.โ
@desrosj answered the systems team has been involved with the discussions and I know that they have been testing.
@joefusco replied โMainly whether there are any outstanding concerns with the table structure or the approach that would prevent it from landing in 7.0.ย Also, is there a documented process for new table proposals that require systems review?ย This wonโt be the last time a feature needs a schema change, and it would help future contributors know the path.โ
Several attendees noted that itโs likely not worth the effort to formalize a process, as that kind of change doesnโt occur regularly.
Whatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/ 23.1? (07 May)
โWhatโs new in Gutenbergโฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
This release introduces two new experiments aimed at managing content inside the editor. A Custom Taxonomies management screen lets you create and edit taxonomies from Settings, and a new Media Editor brings better image manipulation into the WordPress media flow. Outside of the editor, the @wordpress/ui package gains new compound primitives, Drawer and Autocomplete, alongside overlay polish. Other changes include an experiment to hide the classic blockBlockBlock 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. from the inserter, parallel thumbnail uploads, an early developer preview of @wordpress/grid, and a batch of real-time collaboration reliability fixes.
Faster image upload finalization
Sideload requests for an imageโs generated thumbnail sizes used to run sequentially within a single upload. They now run in parallel up to the existing concurrency limit, which speeds up upload completion. (#75888)
The speed improvement is most noticeable on bulk uploads via the Gallery block, large images, and slower connections.
@wordpress/ui primitives
The @wordpress/ui package gains two new primitives and polish across overlay components.
Two new compound primitives ship in 23.1:
Drawer, for slide-in side panels and bottom sheets. (#76690)
Autocomplete, a low-level form primitive for combobox-style inputs. (#77642)
Other polish across overlay components:
The Dialog component gains a new Description subcomponent, plus several tweaks to its spacing and typography to align it better with Drawer. Additionally, its Backdrop only dims the page when the Dialog is modal. (#77194)
Dialog, AlertDialog, and Drawer now support sticky headers and footers when their content scrolls vertically. (#77559)
All overlays *.Popup subcomponents gain a new portal prop which, combined with new optional *.Portal subcomponents, allows for better customization of the portaling behavior. (#77452)
Other Notable Highlights
Custom Taxonomies management (Experiment). An experimental UIUIUser interface for managing custom taxonomies inside WordPress adminadmin(and super admin). With the โContent types: manage custom taxonomiesโ experiment enabled, a new Taxonomies screen lets you create, edit, activate or deactivate, and delete taxonomies without writing PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher. Enable it via Gutenberg โ Experiments โ โContent types: manage custom taxonomiesโ, then visit Settings โ Taxonomies. (#77497, #77524, #77657, #77697)
Image Editor with Freeform Cropper (Experiment). A new experimental Image Editor modal for image manipulation in the Block Editor. The modal enables freeform cropping and other manipulation tools for Image and Site Logo blocks. To test it out, enable the experiment via Gutenberg โ Experiments โ Media Editor Modal, then, in the editor, click on the Crop icon in the block toolbar. (#77479, #77537, #77540, #77585, #77641)
Disable Classic Block from the inserter. The โDisable TinyMCEโ experiment was refocused and landed to disable the Classic block from the inserter. The reason for the change is that removing TinyMCE everywhere broke too many existing flows. Existing Classic block instances continue to work normally, since the change only affects the inserter. A new wp_classic_block_supports_inserterfilterFilterFilters 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. was introduced to allow controlling this behavior. (#77747, #77838, #77840, #77845, #77911)
@wordpress/grid package (developer preview). A new @wordpress/grid package introduces DashboardGrid, a two-dimensional grid component with drag-to-reorder and resize handles for dashboard-style surfaces. The package is in active development, and the APIAPIAn 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. is expected to evolve in upcoming releases. (#77562)
Real-time Collaboration reliability improvements. Several fixes improve RTC reliability and load behavior. The โConnection Lostโ dialog no longer appears when a page registers more sync rooms than the serverโs per-request cap. A client/server size-check mismatch that could reject large Yjs updates has been corrected. When two offline users reconnect and both push compactions, they no longer end up in a divergent state. Sync observers also attach after the persisted CRDT document is hydrated, which avoids redundant block re-parsing during editor load. (#77631, #77669, #77980, #77966)
Experimental Image Cropper: Tweak the keyboard interactions with drag handles and canvas. (77639)
Admin UI: Change default heading level from h2 to h1. (77617)
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Remove redundant memoization wrapper from โgetQueriedItemsโ. (77483)
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Polyfill script module translations for WordPress < 7.0. (77214)
Enhancements
Storybook: Add global preview styles for @wordpress/ui overlays. (77451)
Widgets: Add widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.-types data layer. (77752)
Components
Admin UI: Add visual prop to Page headerHeaderThe 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. component. (76469)
Admin UI: Ensure consistent header spacing with and without actions. (76683)
Admin UI: Use UI Text component in header. (77372)
DataForm: Render field description as help text in the array control. (77554)
ExternalLink: Align appearance with Link from @wordpress/ui. (77790)
Tabs: Rename tabs blocks to follow WCAGWCAGWCAG is an acronym for Web Content Accessibility Guidelines. These guidelines are helping make sure the internet is accessible to all people no matter how they would need to access the internet (screen-reader, keyboard only, etc) https://www.w3.org/TR/WCAG21/. Tabs pattern. (77418)
Block Editor
Embed: Restore paragraph with URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org when undoing paste-to-embed transform. (77551)
Split singleton REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think โphone appโ or โwebsiteโ) can communicate with the data store (think โdatabaseโ or โfile systemโ)
https://developer.wordpress.org/rest-api/ into dedicated /content-guidelines route. (77734)
Bug Fixes
Core Abilities: Export initialization promise as ready. (77254)
Disable Custom CSSCSSCascading Style Sheets. command for non-block themes. (77685)
Grid: Fix width: 'fill' when tiles span multiple rows. (77769)
Tests: Connectors point to the right page. (77272)
PluginPluginA 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.: Gutenberg Experiments: Ensure the experiment is active before outputting flags. (77728)
Connectors: Treat networknetwork(versus site, blog)-active plugins as active. (77661)
Command Palette: Fix macOs label for sites unable to determine UA via PHP. (77638)
Design Tools: viewport visibility โ use โkeyโ instead of โvalueโ for device type. (77410)
Layout: Ensure layout classnames are applied to the inner blocks wrapper and not to its siblings. (77408)
Global Styles: Fix pseudo selector block style rendering in the editor. (76879)
Data Layer: Media โ move image output format filtering to upload response. (75793)
Media Upload Modal: Fix pagination and search. (77872)
Accordion: Add missing dimension controls and limited customization. (77780)
Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Change toggle label to โMake image a linkโ. (71931)
Image: Preserve aspectRatio and scale when switching to wide/full alignment. (76914)
Form blocks: Update block categories for form, form-input, form-submission-notification, and form-submit-button. (61916)
Image: Fix non-local image ID removal undo trap. (77367)
Tabs: Add classic theme styles to reset button defaults. (77607)
Tabs: Lock top-level structure and disable visibility controls. (77370)
Video Block: Update z-index for tracks popover to ensure proper stacking context. (77517)
Components
CollapsibleCard: Prevent focus ring clipping by content overflow. (77667)
Add cursor pointer to the ariakit menu item component. (70412)
Link: Remove underline from unstyled icon links. (77420)
Storybook: Fix โOpen sourceOpen SourceOpen Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. fileโ links for storybook-local stories. (76758)
Storybook: Fix component descriptions in manifest files. (77112)
Text: Apply both heading and paragraph CSS defenses unconditionally. (77461)
UI: Fix focus-trap broken by ThemeProviderโs display: contents. (77381)
UI: Update @base-ui/react from 1.4.0 to 1.4.1. (77520)
Block Editor
Fix blockGap fallback handling for nested var() fallback values. (77750)
Template parts: Make โDetachโ context menu item consistent across patterns and template parts. (77581)
Client Side Media
Deduplicate client-side image sizes with matching dimensions. (77036)
Declare convert_format as boolean arg on sideload route. (77565)
Upload Media: Use .jpg extension for HEIC-to-JPEG client conversion. (77506)
Collaboration
RTC: Fix โConnection Lostโ dialog when too many entities are loaded. (77631)
RTC: Fix connection-lost error on large updates caused by mismatch between update size bounds check and expanded base64 update size. (77669)
RTC: Fix divergence when two offline users reconnect. (77980)
AccessibilityAccessibilityAccessibility (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)
RevisionsRevisionsThe 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.: Improve screen reader accessibility for diff markers region and slider. (77660)
Fix accessibility issues in admin Font Library. (77482)
Connectors
Add role="list" wrapper to connector cards for valid ARIA structure. (77689)
Keep focus on action Button during install. (77544)
Components
CollapsibleCard: Fix missing keyboard focus ring on the header chevron icon when rendered inside wp-admin. (77468)
Tabs: Fix missing keyboard focus ring on the panel in Windows High Contrast mode when rendered inside wp-admin. (77469)
Performance
Post Editor
Notes: Extract floating notes state into a dedicated store. (77424)
Notes: Reduce passes in useBlockComments memo and rename outputs. (77440)
RTC: Attach sync observers after hydrating persisted CRDT doc. (77966)
Dashboard: Register admin page route + sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. menu (shell). (77573)
Fix console errors/warnings for taxonomies. (77601)
Follow up improvements on taxonomies (#77497). (77567)
Media editor: Avoid double-mount flicker on open. (77732)
Media editor: Confirm before discarding unsaved changes. (77730)
Update labels for media experiments to better clarify what they do. (77536)
Media Upload Modal: Add MIME type filtering to support text/vtt tracks. (77550)
Experimental Image Cropper: Ensure focus is on canvas when dragging. (77591)
Block Library
Disable TinyMCE: Warn instead of redirecting directly. (77747)
Site Logo Block: Enable the media editor modal experiment for the crop button. (77548)
Classic Block: Unwrap experiment to hide it from inserter. (77911)
Disable Classic block: Always register, hide from inserter conditionally. (77840)
Disable TinyMCE: Repurpose experiment as Classic block removal. (77838)
Post Editor
Image Editor experiment: Pass theme aspect ratios to media editor. (77665)
Media Editor Modal: Add a media editor modal experiment. (77480)
Documentation
Base styles: Update changelog to be clearer. (77767)
Docs: Add ESLint v10 migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. guide and polish documentation. (77217)
Docs: Update parameter type from number to int. (77519)
UI/Docs: Clarify package setup for custom WP Admin pages. (77338)
Tooltip: Fix flaky unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.. (77751)
ui: Align WithCustomZIndex Storybook examples across overlays. (77648)
Block Library
Accordion: Remove invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid.isBlock prop from ToggleControl. (77776)
Paragraph: Refactor replacement logic in useOnEnter hook. (77383)
Stylelint: Add cursor-pointer rule and block-library override. (77501)
Notes: Refactor and extract offset calculation logic. (77414)
TypeScript: Share ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org CSS custom properties typing. (77394)
TypeScript: Migrate keyboard-shortcuts to TS. (76287)
Admin UI: Move to CSS modules and implement logical properties. (77088)
Block Editor
Fix import order in block-editor custom-css.js. (77566)
Remove stale reusable block z-index styles. (77774)
Site Editor
Edit Site: Move show-icon-labels handling to specific edit-site call sites. (77287)
Use node_modules/.bin/stylelint to avoid npm warnings on Node 24. (77512)
Jest setup: Remove unneeded rAF and URL polyfills. (77378)
Revert tsgo update (#77177) that broke trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (77680)
e2e: Shorten visit-site-editor canvas-loader visible wait. (77725) Connectors: Stop end-to-end capabilitycapabilityAย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โedit_postsโ capability), but not permission to edit other usersโ posts (the โedit_others_postsโ capability). restriction from leaking across specs. (77857)
Fix PHP multisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site tests. (77825)
The Path Forward for WordPress 7.0. The 7.0 release is still on pause for the time being. A new schedule is being worked out and will be announced by the 22nd. There will be another Release Candidaterelease candidateOne 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). in name, but in practice the next release will be treated as a betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process., specifically to test architectural improvements to Real Time Collaboration. Thank you in advance to everyone who helps test!
Please take a look at this Twenty Twenty-Seven: Team Announcement highlighting an emphasis on mentorship and creating an entry point for new contributors.
Discussion ๐ฌ
@annezazu has published Defining expectations for Iteration issues announcing some adjustments to iteration issue handling in the GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/ repo.
From @amykamala: โFinding the most current PRs and discussions can be a bit of a wild goose chase because while PRs mention tickets in their content, the fields/relationships on the right that would link PRs to a ticketticketCreated for both bug reports and feature development on the bug tracker., project, status, etc are not actively being used. For 7.0 theres a kan ban board but nothing in it because tickets and PRs are not being tagged. So the only way to find this info is to scroll endlessly on tickets and click on all the links in the notifications. Some of you may remember a while back I asked devs in here to please start tagging their PRs in the fields on the right.โ
@jeffpaul noted that the #core-program channel may be a good place to iterate on this topic.
Matt is requesting community reps and organizers increase emphasis on Elevating Individuals in the contributor space to to celebrate volunteers and folks who contribute in their own spare time.
From @miroku: โI can only report problems; can that be considered a contribution? Iโm always struggling to figure out how to volunteer effectivelyโ. @jorbin answered that testing and finding bugs is absolutely a contribution!
โWhatโs new in GutenbergGutenbergThe 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.
https://wordpress.org/gutenberg/โฆโ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโs an overview of different ways to keep up with Gutenberg and the Editor.
This release introduces background gradients that work alongside background images in the Group blockBlockBlock 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., and adds organized sections to the command palette for better action discovery (experimental). The wordpress/ui package gains a foundational component for consistent empty states, while real-time collaboration receives stability improvements for multi-user editing sessions.
A total of 131 PRs were merged in Gutenberg 22.9, with 5 first-time contributors!
Table of contents
Background gradients alongside background images
The Group block now supports background gradients through a new background.gradient block support, allowing gradients and background images to work together without conflicts. Youโll find a gradient picker in the Background panel that works independently of the existing color gradient controls, making it possible to create gradient overlays on images or combine multiple background effects.
The new background.gradient block support is available to block authors. This also lays the groundwork for eventually migrating color.gradient to background.gradient across all blocks, providing a more consistent and capable background styling system, including clipping and text gradients. (75859)
Command palette history and suggestions (experimental)
The command palette (Cmd+K/Ctrl+K) now features organized sections that make it easier to find and reuse actions. Instead of showing just a search field and search results, users see sections for Recent commands and Suggestions based on current context. This change is experimental; to give it a try, first go to WP-Adminadmin(and super admin) > Gutenberg > Experiments and enable โWorkflow Paletteโ.
Other Notable Highlights
The wordpress/ui package adds a new EmptyState component for displaying placeholder content when sections have no data. This compound component provides flexible composition with sub-components for icons, titles, descriptions, and actions, laying groundwork for consistent empty state patterns across the interface (74719).
Real-time collaboration has received some fixes that improve the multi-user editing experience and stability. Block comments (notes) now properly sync between collaborative editors instead of requiring page refreshes to appear. In the post list, the action button correctly updates from โJoinโ back to โEditโ when collaboration locks expire. Behind the scenes, error recovery has been enhanced to prevent cascading failures that could previously cause memory issues during collaborative sessions. (76873, 76795, 76872, 76716)
The experimental Forms block now supports hidden input fields, filling an important gap for many applications. Hidden fields appear as selectable placeholder blocks in the editor, while remaining invisible on the frontend with values configurable through the Advanced panel. (74131)
Changelog
Enhancements
Block Editor
DOM: Prefer standard caretPositionFromPoint over deprecated caretRangeFromPoint. (76921)
UI: Update @base-ui/reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org from 1.2.0 to 1.3.0. (76603)
Data Layer
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Remove offset param from stableKey, use pagination logic. (76808)
Block Library
Block Supports: Add background gradient support that can combine with background images. (75859)
Forms Block: Add hidden input field variation. (74131)
Image/Site Logo: Hide crop toolbar when editMediaEntity is unavailable. (76626)
Login/out block: Add button block class names to the submit button. (76746)
Improvements to dataviews infinite scroll. (74378)
Site Editor
Site Editor > Pages: Move view configuration to the server. (76573)
Site Editor > Patterns & Parts: Generate sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. from view configuration. (76823)
Site Editor > Patterns: Move configuration to the server. (76734)
Site Editor > Quick Edit: Add form configuration to endpoint. (76953)
Site Editor > Templates: Move configuration to the server. (76622)
Post Editor
DataForm: Add compact configuration option to the datetime control. (76905)
Navigation Menus
Site Editor v2: Add missing menu items to navigation leaf more menu. (76804)
Connectors
Improve AI pluginPluginA 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. button. (76759)
Collaboration
Add backportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. for WP_ALLOW_COLLABORATION. (76716)
List Item: Disable edit as HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. support. (76897)
Navigation: Avoid List View changing position when navigation block saves. (76659)
Reduce specificity of nav link default padding so global styles apply. (76876)
Show fallback label in MediaControl when filename is empty. (76888)
Site Tagline: Fix block error when migrating deprecated textAlign attribute. (76821)
Connectors
Boot: Fix black area below content when sidebar is taller than page content. (76764)
Align client registration APIAPIAn 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. with server. (76737)
Support non-AI provider types and add JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. extensibility end-to-end test. (76722)
Block Editor
Block visibility badge: Use canvas iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the userโs browser. for viewport detection. (76889)
Cross Origin Isolation: Remove img from the list of elements that get mutated. (76618)
Fix locked content when switching to a different template without exiting โEdit patternโ. (76710)
Hide Additional CSSCSSCascading Style Sheets. controls when block is inside contentOnly editing mode. (76512)
Stop keeping stale controlled blocks after reset. (76591)
Components
Admin UI: Fix Page HeaderHeaderThe 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. not rendering with only actions and add stories. (76695)
Button: Restore specificity of high-contrast mode focus ring. (76719)
Card: Add overflow: Clip to root container. (76678)
Fix Color Picker Angle Reset on Gradient Type Change. (76595)
Storybook: Disable autodocs for Icon library. (76620)
compose/useDialog: Add stopPropagation() to Escape handler. (76861)
ui/CollapsibleCard: Do not animate focus ring. (76682)
RevisionsRevisionsThe 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.: Add MetaMetaMeta 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. fields diff panel to document sidebar. (76341)
Revisions: Fix template revisions retrieval and sorting. (76760)
Style Book: Fix missing styles for classic themes in stylebook route. (76843)
Collaboration
RTC: Fix notes not syncing between collaborative editors. (76873)
RTC: Fix stuck โJoinโ link in post list when lock expires. (76795)
RTC: Restore on failed request with compaction update. (76872)
Client Side Media
Build: Remove unused JXL WASM module from vips worker. (76639)
Gate client-side media processing as plugin-only. (76700)
MetaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way.: Fix checkbox style in sidebar. (76718)
Data Layer
Properly resolve getTemplateId for hybrid themes. (76532)
Site Editor
Fix unsupported theme flash on direct URLURLA specific web address of a website or web page on the Internet, such as a websiteโs URL www.wordpress.org navigation. (76465)
AccessibilityAccessibilityAccessibility (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)
Components
ComboboxControl: Fix accessible association of help text. (76761)
RadioControl: Add role=โradiogroupโ to fieldset. (76745)
ToggleGroupControl: Fix accessible association of help text. (76740)
ControlWithError: Connect validation messages to controls via aria-describedby. (76742)
Fields: Add excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that pluginโs metabox. field. (76829)
React vendor script: Avoid warning on createRoot. (76825)
Set milestone on PRs after cherry-picking to release branchbranchA directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".. (76652)
trunk is closed to commits for the 7.1 release until further notice
Backporting to 7.0 still requires double committercommitterA developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. sign off
Pre-releases are paused
The next release will be a RCrelease candidateOne 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).
Weโre currently in string freeze
Newย Dev Notesdev noteEach 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.:
From @desrosj: contributors who have a list of notes for tickets to create are encouraged to create them before the WordCampWordCampWordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโve learned throughout the year and share the joy. Learn more. Asia Contributor DayContributor DayContributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. Especially if they are good-first-bugs!ย
@desrosj added: โIf someone has some time, triaging the good-first-bugbugA 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. list could also be helpful. Sometimes that list is intimidating because it seems like everything is attended to. But often times the patches need to be refreshed or the approaches so far are not fully solving the issue at hand. If we could note that on the tickets, it may make them more easily actionable.โ
@audrasjb noted that the 8 tickets in the i18n component for 7.0 are easy tickets that would be nice to address during the contributor day. They are also Polyglots, CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., and Core Editor cross-team tickets.
@desrosj will encourage our Polyglots contributors to open tickets for strings that need refinement and additional context as it is a great way to contribute to the upcoming release.
You must be logged in to post a comment.