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.
Two blocks that have lived behind the block experiments flag are now part of the default block library, and are available to everyone without enabling an experiment.
The Playlist block plays a list of audio tracks with track metadata, artwork, and the waveform and track length options. The tracklist itself is configurable: you can set the play order, and toggle the artwork, artist names, track numbers, and track length individually to suit the design of your page. For more details on where the block is headed, see the iteration issue for WordPress 7.1.
Notes continues to move toward a full commenting workflow, with two significant additions in this release.
Inline notes let you attach a note to a specific text selection rather than to a whole block. Select part of a paragraph, add a note, and the highlight stays anchored to that text as you keep editing around it. A single block can carry multiple inline notes, sorted by the order they appear in the block, and none of the highlighting shows up in the published post. (#78218)
@mention autocomplete makes it possible to direct a note at a specific person. Typing @ inside a note opens an inline, keyboard-navigable list of users; selecting one inserts a mention chip that links to the user’s author page and carries the mentioned user’s ID. (#79604)
A dynamic mode for the Gallery block
The Gallery block can now display media dynamically instead of only the images you pick by hand. The new Dynamic Gallery variation shows all media currently attached to the post, in both the editor and on the frontend.
Rather than being a separate block, it is a variation of the Gallery block, so you can move between the two without losing your settings: start a Dynamic Gallery from the block placeholder, and switch it to a regular gallery whenever you want to edit the list of images by hand. (#78796)
Icon collections and a custom icon 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.
Icons can now be registered by plugins and themes, and are organized into collections.
Alongside the default coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. icons, the API has been extended and utility functions added so that you can publish an icon set of your own as a collection. Icons are shared data for the whole site, available in both the editor and on the frontend. (#77260)
The icon picker has been updated to match. A new Collections tab lists collections in the 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. — like the Pattern Explorer — so you can browse and search within one set rather than scrolling a single combined list. The collection containing the currently selected icon is opened by default, and icons load asynchronously to keep the UIUIUser interface responsive when a large number of them are registered. (79681) (#78332)
Other Notable Highlights
Customizable viewport sizes. Tablet and mobile preview widths can now be set in theme.json, so device previews can match your theme’s actual breakpoints. (#79104)
The adminadmin(and super admin) bar is shown by default in both the Post Editor and the Site Editor. (#79197)
Apply Globally is now selective. When applying a block’s styles globally, you can choose which style properties to apply instead of applying all of them. (#79839)
New block support for the Custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block.innerContent support for static inner blocks has been added and adopted by the HTML block. (#79115)
Background gradient support has been added to the Accordion, Post Content, Pullquote, Quote, and Verse blocks. (#79840, #79842, #79841, #79843, #79391)
The Post Editor is now always iframed, aligning its rendering with the Site Editor. (#74042)
Changelog
Features
Post Editor
Allow setting viewport tablet and mobile values in theme.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.. (79104)
Experimental: Expand DataForm inspector to patterns. (79452)
Show the admin bar in the Post and Site Editor by default. (79197)
Block Editor
Share block-bindings context assembly between call sites. (79855)
Data Layer
Blocks: Add innerContent support for static inner blocks, adopt it in the HTML block. (79115)
Components
DataViews: Add a richtext control backed by a private RichTextControl shell in wordpress/components. (78471)
Block Library
Icons: Add PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher method(s) for rendering inline SVG icons from the registry. (78332)
Enhancements
CSSCSSCascading Style Sheets.: Follow-up fixes to split_selector_list(). (79723)
Document 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. relevance, help. (80007)
Expose widget categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. through the build pipeline and 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/. (79638)
Omnibar: Move the ‘site icon in admin bar’ feature from experiment to 7.1 compat. (79807)
Scripts: Make ‘test-e2e’ run Playwright and remove Puppeteer. (80058)
Site Editor v2 experiment: Hide admin bar in distraction-free mode. (79937)
Widget Dashboard: Reserve paint space for tile focus rings. (79990)
Widget Primitives: Add WidgetAttributeField for typed attribute schemas. (79544)
Widgets: Add a declarative help metadata field, surfaced as a 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. infotip. (79830)
Widgets: Add attribute relevance and inline editing in the tile toolbar. (79735)
Widgets: Translate title, description, and keywords server-side. (79701)
Add ariaLabel supports for Tab List Block. (79948)
Add icon state classes to Accordion block. (74257)
Add layout and block spacing support to Latest Posts block. (77989)
Add option to exclude current post from query block. (64916)
Animated GIF to video conversion (via mediabunny). (78410)
Classic block: Remove migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. notice and restore inserter availability. (79894)
Cover: Allow restricting video embed providers. (80092)
File Block: Deduplicate the file to audio/video/image transforms. (80158)
GIF to video conversion: Make it opt-in. Switching via block transforms. (80072)
Icons: 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. the icon library picker by collection. (79681)
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 to 1.6.0. (79408)
UnitControl: Hard deprecate 40px default size. (79721)
View config: Add better post type default form. (79625)
Visual 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.: Label autosaves in the revisions timeline. (79950)
Visual revisions: Make the autosave notice work with the visual revisions UI. (79947)
Notes: Remove “Add note” from the inline styles dropdown. (80531)
Device preview dropdown: Use active color for device icon when responsive styles are active. (80346)
Editor: Allow selecting which block styles to apply globally. (79839)
Notes: Add placeholders to the RichText fields. (80296)
Notes: Increase contrast between 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. border colors. (80285)
Block Editor
Add contrast checking for viewport and pseudo states. (80223)
Block variations: Support innerContent for the Custom HTML block. (79659)
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.
Experiments: Move screen under Settings, drop top-level Gutenberg menu and Demo page. (79456)
Release: Harden all npm package release paths. (79905)
Command Palette: Show the search icon on desktop as well. (79881)
Fix: DataForm inspector shows raw “auto-draft” status for new posts. (79914)
Media: Fix fatal error from narrowed create_item_from_url() visibility. (79972)
Site Editor: Update default theme color from fresh to modern. (79814)
design-system-mcp: Use fixed version for alpha MCP server. (80061)
lintstaged: Avoid appending filenames to the prelint:Js command. (79800)
Core Abilities: Restore the ready promise and lazy-load via dynamic import. (79155)
Block Library
Add translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. comment to waveform styles. (80112)
Block position: Allow options dropdown to flip. (79798)
Blocks: Rename _gutenberg_apply_content_filters() to _wp_apply_content_filters(). (80191)
Cover Block: Fix unsaveable state when clearing an embed video background. (80184)
Enable default gap processing on Gallery block. (79984)
File Block: Changed the context for fetching the media. (80085)
Fix – Accordion: Text in a closed accordion panel cannot be found via the browser search. (74744)
Fix and permit unitless zeros used in CSS calc functions. (79786)
GIF block variation: Remove icons from “Display as” toolbar buttons and only show when block can be inserted. (79985)
Icon block: When the default icon is unregistered, nothing is displayed. (80166)
Latest Posts: Parse blocks in full content display. (74866)
Make playlist pause button visually match play button. (80217)
Navigation Link/Submenu: Run post-status check also without Gutenberg plugin (draft/deleted links 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.). (79748)
Navigation Link: Fix “[object Object]” in link preview for untitled entities. (79616)
PHP-Only blocks: Forward current post ID to server render. (78909)
Playlist block: Avoid laggy layout shift when changing tracks. (79497)
Playlist: Fix flashing track state when adding new track. (80076)
Responsive editing: Apply crop dimensions to image block placeholder. (80162)
Select tab panel when caret moves into tab. (79558)
Tab List: Fix render inline formatting on frontend. (79554)
Tabs: Fix active tab switching from a stale inner-block selection. (79981)
Tabs: Fix dirty editor state on mount caused by tab-list sync. (79540)
Tabs: Fix rich text label comparison when syncing the list. (79582)
Tabs: Prevent tab list from moving focus during revision navigation. (79730)
Tabs: Remove redundant block selection from Add/Remove tab actions. (79571)
Fix crashes when manipulating locked blocks. (80509)
Playlist: Fix playback of tracks served without CORS headers. (80533)
Fix default aspect ratio for lazy loaded 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.. (80386)
Tabs: Fix stale overflow fade as content settles on load. (79856)
Theme: Fix token story swatch 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). (79960)
useMergeRefs: Apply ref changes after out-of-render attachment. (80133)
ContentEditableControl: 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. label association with contenteditable div. (80441)
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. ColorPicker cursor shaking fix to WordPress 7.1. (80435)
DataViews: Fix the list layout ignoring some settings when groupBy is set. (80255)
DataViews: Fix the unintended gap between list layout items when groupBy is set. (80254)
UI: Backport compat overlay fixes to WordPress 7.1. (80322)
fix: Set dataviews popover hover text color. (80105)
Block Editor
DimensionControl: Include styles in stylesheet. (79916)
Editor: Use the DS focus color for all sidebar elements. (80087)
Fix clipped/doubled focus outline on inserter block list items. (79845)
Fix unsetting values in viewport states for grid and constrained layouts. (79520)
HTML Block: Preserve innerContent when transforming to group, columns. (79887)
Move inspector controls styles slot back to previous position. (80111)
Render the selected static inner block synchronously. (79726)
Rich text: Cut through the record instead of execCommand. (80155)
Writing flow: Fix selection end mapping at block boundaries. (80126)
useTypingObserver: Capture the window reference for cleanup. (78772)
Global Styles: Resolve per-level heading element styles in block inspector controls. (80495)
Redirect editing events to extension handlers under editableRoot. (80287)
Writing flow: Fully select the items when a selection extends down into a nested item. (80492)
Post Editor
Editor: Render back button as proper , which cleans up custom CSS. (79862)
Editor: Render post preview action as a menu item. (80195)
Fix clipped focus ring on the document bar. (80084)
Image: Sideload external images on the server when uploading to the library. (79409)
Notes: Allow canceling the autocompleter popover with Escape without dismissing the note form. (80224)
Device type preview: Fix collapsing to content height. (80553)
Notes: Align floating threads with their inline marker. (79877)
Wrap notices in ThemeProvider with 0 corner radius. (80557)
Editor: Disable canvas resizing while zoomed out. (80391)
Fix upload snackbar stuck in uploading state on server-side uploads. (80345)
Notes: Finish WPDS treatment for mention chips. (80300)
Responsive styles: Open inspector sidebar when toggling. (80307)
Responsive styles: Use viewport dropdown to control states for in-editor global styles sidebar. (80339)
Fix upload snackbar double-counting a single HEIC upload in Safari. (80436)
Editor: Restore fixed device preview height for mobile and tablet. (80466)
Site Editor
Editor: Fix regression and restore the back button focus ring. (80029)
Editor: Render mobile back button as proper and remove custom CSS. (80032)
Editor: restore the behavior of only showing back button focus ring on :Focus-visible. (80114)
Style Book: Pass site editor settings to StyleBookPreview on the styles route. (80035)
Media
Experimental Media Modal: Ensure selection is properly cleared between open/close. (79731)
Media Modals: Invalidate attachment caches when closing the modal. (79844)
Media editor modal: Balance top padding for sidebar controls. (79660)
Client Side Media
Apply and correct EXIF orientation for client side sub-sizes. (79384)
Media: Backport client-side media improvements from WordPress core backports. (79603)
Vips: Preserve bit depth of high-bit-depth AVIF in sub-sizes. (79556)
Icons
Playlist icon: Fix 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. with missing viewbox. (80180)
Store the sanitized SVG content when registering an icon. (80508)
Block API
Block Supports: Ensure that custom CSS is output after the block library styles. (80062)
Guidelines
Render block icons like the editor so every icon displays correctly. (79738)
Notes: Arm the mention kses allowance on REST note creation. (80221)
Style States
Style Engine: Preserve important gradient declarations. (79568)
Hide block style variations when state is enabled in global styles. (80341)
Data Layer
RTC: Fix undo / redo breakage when plug-in with 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. is loaded. (79510)
Connectors screen
Prevent overscroll bounce for stage and inspector surfaces. (78587)
Global Styles
Block Supports: Handle nested array block gap values properly. (80464)
Style Book: Restore live global styles updates on the styles route. (80459)
Accessibility
Media
Media editor: Address accessibility review feedback. (79966)
Post Editor
Editor: Move focus to revisions slider when entering revisions mode. (79691)
Replaces the title attributes used by revision inline diff annotations with aria-describedby. (80440)
Revisions: Specify block level diff status via aria-label. (77779)
Components
A11yAccessibilityAccessibility (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): Replace local aria-live regions with speak(). (79600)
CI: Avoid full-history checkout for the root-dependencies check. (79489)
Block Library
Latest Posts: Fix slow category selection with large category lists. (80198)
Data Layer
RTC: Only apply CRDT updates synchronously when collaborating. (79991)
Block API
Block Supports: Prevent Additional CSS duplication inside Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. (78282)
Global Styles
prepend_to_selector: Optimized with str_replace(). (76556)
Backfill unreleased changelog entries for the widget packages. (79909)
Badge: Update storybook with “don’t use icons” example. (79585)
Components: Add missing descriptions for design system components. (79460)
Components: Document CSS module class composition. (79490)
Components: Link recommended UI component. (80127)
Design system MCP: Document Codex CLICLICommand Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. prerequisite for MCP setup. (79917)
Docs: Add a widget anatomy doc and lighten the widget system doc. (79435)
Docs: Add image hosting guidance to the documentation contributors guide. (79574)
Docs: Add missing since, param, and return tags in REST API compat file. (80079)
Block Supports: Guard elements hover rendering against missing hover selector. (79511)
Plugin
Move icon tests out of phpunit/experimental. (79695)
Move real-time collaboration compat code to wordpress-7.1. (79863)
Icons: Fix collection unregister not removing icons after core added its own registry. (80292)
Guidelines
Guidelines end-to-end Tests: Wait for boot to load copy page. (79663)
Use str_starts_with() in is_block_meta_key(). (79491)
DataViews
Sync changes from core for view-config version handling. (80170)
Widgets Editor
Edit Widgets: Remove unused customizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.-edit-widgets-initializer style.scss. (79915)
Client Side Media
Vips: Add positional-crop test for high-bit-depth AVIF. (79880)
Vips/upload-media: Consolidate optional params into options objects. (80330)
CI: Enforce pruned ESLint suppressions during lint. (79708)
Docs: Generalize the npx guidance in AGENTS.md to cover wp-scripts. (79973)
GithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ workflows: Extend package changelog nudge to bundled packages. (78934)
React 19 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.: Log warnings when polyfills are hit. (79624)
React 19: Patch to support legacy inert attribute values. (79475)
Backport changelog and package version updates from NPM. (79816)
Components
Add an editableRoot block support for native cross-block selection. (79105)
Post Editor
Always 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.. (74042)
Security
Opt in to npm v11 supply-chain security features. (79614)
You must be logged in to post a comment.