Roster of design tools per block (WordPress 6.8 edition)

Below you find a table that lists all coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks available in the inserter marks in the grid the feature they support in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor. It’s a basic lookup table that helps developers to find the information quickly.

While this post is released as part of 6.8, the content summarizes changes between 6.1 and 6.8. This is an updated of the 6.7 edition and provides a cumulative list of design supports added with the last six WordPress releases. The icon ☑️ indicates new in 6.8.

The features covered are:

  • Align
  • Typography,
  • Color,
  • Dimension,
  • Border,
  • Layout,
  • Gradient,
  • Duotone,
  • Shadow,
  • Background image
  • Pattern overrides / Block Bindings (PO/BB)

Work in progress

The issue Tracking: Addressing Design Tooling Consistency lists tracking issues for individual block supports.

Props to @audrasjb for review.

#6-8, #dev-notes, #dev-notes-6-8, #editor

WCEU 2025 Core Committers Meeting Notes

At WordCampWordCamp WordCamps 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. Europe last week, CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Committers in attendance (including emeritus) gathered for a brief informal meeting.

Photo credit: Levente András Tóth

There was no formal agenda, but a few goals for the meeting were mentioned at the beginning:

  • Allow newer committers to meet more senior ones.
  • Allow anyone to raise questions, concerns, or suggestions that have been on their minds.
  • Just spend some time together chatting and getting to know each other.

Below are some brief notes from discussions that happened following Chatham House Rule.

6.9 Release Cycle

The current major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. cycle was discussed for a bit. More specifically, what should the targeted features be? With (more) recent changes to contributor availability, it’s possible there could be a 6.9 this calendar year (was later confirmed as the goal by Matt in the fireside chat).

A new or revised short-term roadmap would help committers and contributors alike participate more effectively by providing clarity on the current focus areas, goals, and targeted features. For the long-term, clarity on whether the 4 phases are still accurate objectives.

6.8.x Releases

These should continue to be planned and executed as necessary. If major releases are going to be less frequent, carefully including smaller features and enhancements in minor versions would be beneficial.

If the timeline for the next major release does change, minor releases may not have as many contributor resources. That needs to be watched to ensure continued success of minor releases.

Possible Short-Term Targets 

A handful of possible short-term features and tasks were identified to explore:

  • address technical debt
    • there are many areas of the code base that can likely be moved from Core to a canonical pluginPlugin A 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. For example, the Links/Bookmarks APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
    • No-op or remove severely outdated classes deprecated long ago (3.0 times). For example, Snoopy. 
  • Perform ticketticket Created for both bug reports and feature development on the bug tracker. triaging without being afraid to say “no” more often.
  • Discuss what role themes have in present day WordPress.
    • Should we continue creating default themes going forward?
    • What do we want  as a project from blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes?
    • How does the pattern directory, font library, block plugins, etc. replace traditional theme components?
  • Audit the importer plugins.
    • Can we possibly archive repositories for importers for services long decommissioned?
    • Should we mark the importers as canonical plugins?
  • Better contextual integration points for canonical plugins (suggest installing to the user when performing related actions)
  • How can we better collect feedback from users that choose to install canonical plugins?

Bring Back User Testing

Previously, the project conducted user testing. That seems to have stopped, but this practice was very beneficial and informative. It showed how the software is actually used by users and whether the intended experience was achieved.

It would be great to resume this practice. However, users are goal oriented, not feature oriented. The outcome of user testing is usually not fine grained tickets for small, specific things. This requires different skill sets to address findings (foundational problems in experience vs. bugs to fix).

Increased Amount and Quality of Testing

If releases are spaced out more (ie. once per year), testing early and often is more important to avoid a large number of bugs down the home stretch of a release cycle.

There were questions around whether we were doing a good job encouraging the right types of quality testing.

  • the testing during release parties can likely be covered more effectively by E2E tests. Contributors are performing the same actions and not truly testing the features that are being shipped.
  • This allows for better testing actual features with specific interactions.
  • The ideal testing could be detailed prior to the release party.
  • When developer notes are published, they could include specific testing instructions.
  • A specific dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. outlining the different testing paths and intended outcomes could also be published to the Make Test blogblog (versus network, site).
  • Testing during release parties is a great way to get started contributing, but it’s gotten to a point where that testing is not a good use of resources. Too many people doing the same shallow testing at once. 
  • Can the betaBeta A 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. testing plugin contextually bring in testing instructions?
  • Can the beta testing plugin better engage the user. Some inspiration can be taken from Apple’s Testflight.

Next Meeting

It’s time to schedule the next virtual Core Committercommitter A 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. meeting on Zoom. The date and time of this will be coordinated in the #core-committers channel in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.

Props @johnbillion, @flixos90 for pre-publish review.

#core-committer-meetings, #core-committers

What’s new in Gutenberg 20.4 and 20.5?

We’re catching up with these posts now, as they have not been posted in a while. Since the recent releases have been smaller in scope, this post combines updates from both the 20.4 (March 5) and 20.5 (March 20) releases.

Both versions introduce a collection of enhancements, bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, and improvements. These updates concentrate on refining the editor experience, improving accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility), and ensuring consistent design. Additionally, the releases incorporate under-the-hood updates focused on code quality and performance.

  • 20.4 (5 March)
    • Persist the user’s ‘Show Template’ preference in the editor
    • Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. now supports sorting posts by menu order
    • Changelog
  • 20.5 (20 March)
    • The create-block package now supports blocks manifest and relevant CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. APIs by default
    • Changelog

20.4 (5 March) – Highlights

Persist the user’s ‘Show Template’ preference in the editor

The editor now remembers the ‘Show Template’ preference set by the user and uses it as the default rendering mode. (69286)

Query Loop Block now supports sorting posts by menu order

The Query Loop block now lets users sort posts by their menu order, in both ascending and descending order, for post types that support it. (68781)

Changelog

Enhancements

  • Generate built CSSCSS Cascading Style Sheets. file containing the adminadmin (and super admin) color theme CSS custom properties. (69128)

Post Editor

  • Editor: Conditionally enable the new default rendering mode for Pages. (69160)
  • Editor: Persist user’s ‘Show Template’ preference. (69286)
  • Editor: Restore starter content modal. (69081)
  • Post Template Panel: Display popover on the left side of the sidebarSidebar A 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.. (69134)

Block Library

  • Post Navigation Link: Enable all non-interactive formats. (69325)
  • Pullquote: Adding missing alignment style. (68121)
  • Query Loop: Add menu_order as sorting option. (68781)

Site Editor

  • Enhance 404 message styling. (69234)

Media

  • Media Utils: Restrict file uploads with multiple prop in uploadMedia and mediaUpload. (69175)

Components

  • BorderControl: Always show Reset button. (69066)

Block Editor

  • Block Action: Implement cut functionality in block actions and settings menu. (68554)

Global Styles

  • Allow :Focus-visible pseudo-selector to be set in theme.jsonJSON JSON, 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.. (68521)

Design Tools

  • Post Comments Count: Add Border Support. (68223)

Bug Fixes

  • Core Data: Allow ‘null’ as raw attribute value. (69257)
  • Dataviews: Fix alignment issue of “Title” column headerHeader The 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.. (68840)
  • Fix addQueryArgs and removeQueryArg on URLs with fragments. (69313)
  • Post formats: Make title and description human readable. (69275)
  • Site Editor: Fix back link from “Navigation” sub-menus in mobile web. (69192)
  • TextControl: Fix text direction for URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org and email fields in block editor for RTL languages. (68561)

Block Library

  • Fix: Extra top and bottom margin issue in Social Link block for classic theme below twenty twenty. (69100)
  • Make navigation block wavy underline more visible on dark backgrounds. (69004)
  • Template Part block: Guard against get_block_file_template returning null. (69309)
  • Video Block: Disable autoplay when video is not muted. (69232)

Post Editor

  • Editor: Add an extra check before enabling the new default rendering mode for Pages. (69209)
  • Editor: Avoid a ‘flash’ when rendering in ‘template-locked’ mode. (69173)
  • Editor: Revert bulk editing support for post actions. (69341)

Site Editor

  • Fix space on the left or right of the menu in mobile view. (69327)
  • Show pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. step in navigation for mobile. (69206)
  • Site Hub: Navigate correctly in mobile view. (69157)

Components

  • Notice: Fix text contrast for dark mode. (69226)
  • NumberControl: Fix invalidinvalid A 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. HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. attributes for infinite bounds. (69033)

Colors

  • Format Library: Prevent the text and color picker from overlapping. (69169)
  • Format Library: Text-color popover width to fit sidebar. (68881)

Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • iAPI Router: Revert “Handle styles assets on region-based navigation”. (69222)

PluginPlugin A 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

  • Fix typo for ‘ignore_sticky_posts’ REST APIREST API The 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/. support. (69171)

Block Editor

  • Inserter: Hide drag-and-drop help text on mobile devices when previewing patterns. (69159)

Block hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.

  • Fix duplicated insertion in Post Content. (69142)

REST API

  • Adds the site reading options to the index. (69106)

Block API

  • Block support: Add server-side processing for ariaLabel. (69096)

Document Outline

  • Show heading blocks when template-lock is enabled. (69073)

Media

  • Improve display of error returned from the REST API when an unsupported image type is uploaded. (68788)

Accessibility

Components

  • Cover: Fix placeholder color options keyboard accessibility. (68662)
  • InputControl: Ensure consistent placeholder color. (69334)

Post Editor

  • Improve the EntitiesSavedStates modal dialog design and labeling. (67792)
  • Swap fullscreen mode snackbar notice message. (69305)

Patterns

  • Close patterns modal on insertion and focus on inserted pattern. (68975)

Block Editor

  • Fix CSS classes for the post editor iframeiframe iFrame 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. body. (68481)

Performance

Interactivity API

  • Introduce withSyncEvent action wrapper utility and proxy event object whenever it is not used. (68097)

Documentation

  • Added Missing Double Quote in Number Control. (69207)
  • Added Missing Global Documentation in Query Total Block. (69233)
  • Added php.net/date links. (69280)
  • Components: Fix typo for notice color in readme.md. (69204)
  • Docs: Add Documentation for Adding Block Variations Using get_block_type_variations Hook. (68434)
  • Docs: Removes notes about Block Hooks only supporting static theme elements. (65455)
  • Fix Syntax Issue in Documentation. (69166)
  • Fix typo incorrect article before “user interface”. (69168)
  • FontSizePicker: Fix FontSizePicker Storybook control type and improve documentation. (68936)
  • Update javascriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.-in-the-block-editor.md – fix link. (62431)
  • docs: Correction in plugin-sidebar-0.md. (69268)

Code Quality

  • Fields: Avoid ‘useSelect’ warnings in the template component. (69344)
  • Remove unnecessary opacity override for Firefox placeholders. (69312)
  • Revert “Feature: Add navigation.isLoading state to core/router store (#67680)”. (69330)

Post Editor

  • Editor: Use a stable array ref as fallback value in ‘BlockVisibility’. (69288)

Site Editor

  • Test: Add end-to-end test for 404 page. (69272)

Tools

Testing

  • ESLint: Improve lint regex for preventing “toggle” word usage in translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. ready functions. (68958)
  • Media Utils: Add tests for new error behavior. (69215)
  • Performance Tests: Update method for creating sample content. (69210)
  • Tests: Fix preloading end-to-end test. (69228)
  • end-to-end Tests: Add Block Hooks Test Coverage. (69044)

Various

Plugin

  • ESLint: Add rule to prevent usage of the word ‘sidebar’ in translatable strings. (68894)

Post Editor

  • Update template-related messages to improve clarity for custom post types. (67722)

First-time contributors

The following PRs were merged by first-time contributors:

  • @alexchrysovergis: Fix typo incorrect article before “user interface”. (69168)
  • @andreawetzel: Components: Fix typo for notice color in readme.md. (69204)
  • @kellymears: docs: Correction in plugin-sidebar-0.md. (69268)

Contributors

The following contributors merged PRs in this release:

@adamsilverstein @afercia @alexchrysovergis @andreawetzel @benazeer-ben @carolinan @DAreRodz @davilera @fabiankaegy @felixarntz @himanshupathak95 @huubl @im3dabasia @Infinite-Null @jonathanbossenger @juanmaguitar @kellymears @Mamaduka @ockham @Rishit30G @SainathPoojary @shail-mehta @shimotmk @singhakanshu00 @snehapatil2001 @stokesman @Sukhendu2002 @swissspidy @t-hamano @yogeshbhutkar


20.5 (20 March) – Highlights

The create-block package now supports blocks manifest and relevant Core APIs by default

Blocks created using the create-block package now include a block manifest file by default, making it easier to manage metadata and improving performance when working with multiple block types. (69446)

Pre-publish panel: Do not show suggestions for tags and categories if there are none.

The conditions that determine if the pre-publish panel should show suggestions to add categories or tags have been updated if no categories or tags are added. (69453)

Changelog

Enhancements

  • Admin bar: Update the Edit Site link. (69271)
  • Enhance create-block package to support blocks manifest and relevant Core APIs by default. (69446)
  • Remove trailing periods from Show or hide settings panel. (69356)
  • Site Editor: Make current theme and editor settings available to route area resolvers. (69299)

Block Library

  • Button Block: Add draft page creation capability. (69368)
  • Query Total: Update the block color support settings. (69500)

Block Editor

  • BlockEditor: Resolve MediaReplaceFlow UIUI User interface text inconsistency. (69546)

Site Editor

  • Add period to Design description. (69537)

Post Editor

  • Pre-publish panel: Do not show suggestions for tags and categories if there are none. (69453)

DataViews

  • DataView Actions Modal: Allow customizable modal size through props. (69302)

Bug Fixes

Block Library

  • Archives Block: Fix showLabel default state. (69469)
  • Comment Template: Use fallback when there’s an HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. error. (69422)
  • Fix: Show the author and author name examples in the Stylebook. (69436)
  • Image block: Unwrap img element in editor. (68666)
  • Latest Posts: Make Latest Posts block consistent with sticky posts display. (69428)
  • Query Total: Prevent stricted type fatal errors on post per page. (69508)
  • Social Icons: Disable edit as HTML support. (69374)
  • Spacer: Revert height defaults to 100px if left unset. (69450)
  • SpacerControls: Default the height to 100px if left unset. (68819)
  • Table Of Contents: Include headings exclusively within the core/post-content block. (69366)

Site Editor

  • Classic themes: Prevent access to parts of the Site Editor. (69473)
  • Hide admin bar in classic theme site preview. (69514)
  • Prevent access to the Design/Styles screen from classic themes without StyleBook support. (69377)
  • Show save panel in mobile layout. (69448)
  • Site Editor Sidebar: Fix header scrolling in mobile layout. (69413)

Global Styles

  • Shadow, Duotone: Fix reset button style. (69471)
  • ShadowsPanel: Remove Flex Wrapper from Subtitle. (69541)

Post Editor

  • Autocompleters: Change user slug color. (69003)
  • Editor: Fix ‘slug’ editing in ‘template-locked’ mode. (69516)

Document Settings

  • Editor: Use disabled state for ‘Change template’ menu item. (69558)

Style Book

  • Classic theme site preview: Make all interactive elements unclickable. (69522)

Document Outline

  • Disable selection for non-content headings. (69506)

Block Editor

  • Fix error from popover scroll hook. (69479)

REST API

  • Add additional default template data fields for the active theme. (69417)

Block Directory

  • Fix installations for ‘template-locked’ mode. (69394)

Layout

  • Layout Support: Replace incremental IDs with hashes. (68210)

Accessibility

Post Editor

  • Editor: Refactor the ‘PostVisibility’ component. (69451)
  • Make password protected input fields consistent. (69440)

Components

  • Button: Remove fixed width from small and compact buttons with icons. (69378)
  • Remove non translatable additional info from font size picker visual label and improve labeling. (69011)

Block Editor

  • ARIA: Fix invalid DropdownMenu children structure. (69441)

Block Library

  • Site Title: Fix logic for ‘aria-current’ attribute. (68909)

Performance

Post Editor

  • Editor: Optimize queries for ‘useAllowSwitchingTemplates’ hook. (69560)
  • Editor: Optimize selector queries for Homepage and Posts Page actions. (69461)
  • Editor: Preload template lookup. (69454)

Site Editor

  • Fix template lookup preloading for non-draft pages. (69400)

Experiments

  • Added Missing Trailing periods in Experiment Settings Page. (69395)

Documentation

  • Docs/update reference to JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. build setup 404 in scripts README, fix absolute links. (69495)
  • Fix: Update invalid JSON Schema link in README.md. (69505)
  • Update documentation about wp-scripts build-blocks-manifest in relation to new WordPress 6.8 function. (69445)

Code Quality

  • Alignment note with WordPress report 62426. (69519)
  • Core Data: Update ‘__unstableBase’ entity types. (69556)

Block Library

  • Audio Block: Refactor setting panel to use ToolsPanel. (69324)

Global Styles

  • Removed color.__experimentalDuotone from core blocks. (58241)

Tools

Testing

  • Restore post preview end-to-end tests. (69447)
  • Skip failing post preview end-to-end tests. (69429)
  • Template UI mu-plugin: Run filterFilter Filters 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. after the setup_theme action. (69542)

Various

Plugin

  • Update hierarchical data compat directory. (69550)

First-time contributors

The following PRs were merged by first-time contributors:

  • @Anuj-Rathore24: Fix: Update invalid JSON Schema link in README.md. (69505)
  • @bschneidewind: Site Title: Fix logic for ‘aria-current’ attribute. (68909)
  • @dontfeedthecode: Docs/update reference to JS build setup 404 in scripts README, fix absolute links. (69495)
  • @sabbir1991: Removed color.__experimentalDuotone from core blocks. (58241)
  • @SirLouen: Alignment note with WordPress report 62426. (69519)

Contributors

The following contributors merged PRs in this release:

@afercia @Anuj-Rathore24 @bschneidewind @carolinan @cbravobernal @DAreRodz @dhruvikpatel18 @dontfeedthecode @felixarntz @HILAYTRIVEDI @himanshupathak95 @im3dabasia @Infinite-Null @Mamaduka @sabbir1991 @SainathPoojary @shail-mehta @shimotmk @SirLouen @stokesman @t-hamano @yogeshbhutkar


Props to @yogeshbhutkar for writing the post and @luminuu and @bph reviewing it.

#block-editor, #core-editor, #gutenberg, #gutenberg-new

WordCamp Europe 2025 | Recap of the event

The Contributor DayContributor Day Contributor 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://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. at WordCampWordCamp WordCamps 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. Europe 2025 was a great success. A significant number of participants actively contributed to the advancement of WordPress. The CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team welcomed new members who bring valuable expertise and commitment to the project. 🥳

Contributor Day

Copyright by Jeroen Rotty, Pantelis Orfanos, Claudio Schwarz, Paco Marchante

Five New Core ContributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org.

A warm welcome to five new Core contributors: @anukasha, @hage, @mapoken, @nimeshatxecurify, and @vishalbhisara. Their contributions are greatly appreciated, and their future involvement is highly anticipated. Welcome aboard!

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ Release Articles

@luminuu and @bph prepared the latest Gutenberg release articles, a crucial task for keeping the community informed. One of these articles is already live and can be found here:

Dev Blogblog (versus network, site) & Supporting Newcomers
@marybaum drafted the Call for an upcoming Dev Blog article. At the same time, @mamaduka introduced new contributors to Gutenberg and offered valuable advice and guidance.

Tickets Status

Progress was made on six tickets: #29798, #63530, #63534, #63535, #44083, and #60566.
Four of these were successfully fixed — a fantastic result! 🎉

Gratitude to Table Leads

Copyright by Jeroen Rotty and Thanh Nguyen

A special thank-you goes to the outstanding Table Leads: @apermo, @benjamin_zekavica, @johnbillion, and @mamaduka. Their helpfulness and support were widely recognized, and their willingness to share knowledge made a significant impact on the day’s success.

Who Was There

Thanks to everyone who participated and dedicated time and energy:
@adamsilverstein, @apermo, @benjamin_zekavica, @bph, @desrosj, @fabiankaegy, @johnbillion, @karmatosed, @luminuu, @mamaduka, @marybaum, @printsachen1, and @ravigadhiyawp.

Missed some talks?

WordCamp Europe 2025 featured a vibrant mix of sessions—ranging from content strategy and community building to cutting-edge AI techniques. All talks are now available on WordPress.tv, along with links to the presentation slides.

Looking Ahead

As with every year, WordCamp Europe concluded with the valuable opportunity to meet in person. The addition of new contributors brings renewed energy and motivation to future efforts.

Thank you all. The future of WordPress is looking bright 🙌

Credits: WordCamp Europe 2025

Props @mamaduka, @johnbillion, @apermo, @audrasjb, and @mikachan for helping out on Contributor Day! And thank you to @francina, @jorbin, and @karmatosed for reviewing and providing feedback on this recap article.

#contributor-day, #core, #wceu25

More efficient block type registration in 6.8

WordPress 6.8 introduces a new function wp_register_block_types_from_metadata_collection(), which allows plugins to register multiple blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. types with a single function call.

This function expands on the foundational capabilities of the wp_register_block_metadata_collection() function, which was introduced in WordPress 6.7 to improve performance.

Context

To recap the relevant functionality added in WordPress 6.7:

Plugins can now optionally register a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher “manifest” file, which includes all the metadata for their block types. For any block type that is being registered, WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. will now check whether such a manifest file is present covering the block type, and if so, it will use the data from the manifest file instead of reading and parsing the block type’s block.jsonJSON JSON, 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. file directly.

Since the blocks manifest file includes all the block type names, a logical next step after adding support for such a file is to make the requirement for individual block type registration calls obsolete. This is what the new  wp_register_block_types_from_metadata_collection() function implements.

Benefits

By using the new function, you no longer need to add individual register_block_type() calls for every block type that you include in your pluginPlugin A 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. This improves developer experience, especially when using the latest block development best practices where the block.json file is used as the sole entrypoint for both PHP (server-side) and JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. (client-side). Adding a new block type to an existing plugin is now possible by creating the block’s directory and working exclusively within that directory. You no longer need to remember to register the block type somewhere else in the PHP codebase of the surrounding plugin.

Example

Let’s say you have a plugin with 5 custom block types: “accordion”, “carousel”, “carousel-slide”, “dialog”, and “icon-button”. At the present, this means your plugin’s PHP code may look like this:

$block_types = array( 'accordion', 'carousel', 'carousel-slide', 'dialog', 'icon-button' );
foreach ( $block_types as $block_type ) {
	register_block_type( __DIR__ . "/build/{$block_type}" );
}

With WordPress 6.8, you can now use the wp_register_block_types_from_metadata_collection() function to eliminate the need for the list of block types in the PHP code so that all block types are recognized and registered automatically.

To do that, you need to generate a manifest file for your block types. You can use the build-blocks-manifest command or the --blocks-manifest argument of the build command from the @wordpress/scripts NPM package, which was also explained in the relevant WordPress 6.7 dev note. It can be easily integrated into your build process by changing the scripts in your package.json file as follows:

  • Change the “build” script from wp-scripts build to wp-scripts build --blocks-manifest.
  • Change the “start” script from wp-scripts start to wp-scripts start --blocks-manifest.

With the generated manifest in place, the PHP code above can be simplified to no longer require a hard-coded list of block types:

wp_register_block_types_from_metadata_collection(
	__DIR__ . '/build',
	__DIR__ . '/build/blocks-manifest.php'
);

Backward compatibility with older WordPress versions

As the wp_register_block_types_from_metadata_collection() function is only available in the latest WordPress 6.8 release, you may still want to support older WordPress versions. Fortunately, the function can be easily replaced by a few lines of codeLines of Code Lines of code. This is sometimes used as a poor metric for developer productivity, but can also have other uses., as long as you have a generated blocks manifest in place as described above.

Here is a code example that uses the respective best practices for WordPress 6.8, WordPress 6.7, and older versions:

if ( function_exists( 'wp_register_block_types_from_metadata_collection' ) ) {
	wp_register_block_types_from_metadata_collection( __DIR__ . '/build', __DIR__ . '/build/blocks-manifest.php' );
} else {
	if ( function_exists( 'wp_register_block_metadata_collection' ) ) {
		wp_register_block_metadata_collection( __DIR__ . '/build', __DIR__ . '/build/blocks-manifest.php' );
	}
	$manifest_data = require __DIR__ . '/build/blocks-manifest.php';
	foreach ( array_keys( $manifest_data ) as $block_type ) {
		register_block_type( __DIR__ . "/build/{$block_type}" );
	}
}

The @wordpress/create-block NPM package has been enhanced to use the new functions conditionally, using a similar code snippet as shown above.

Summary and further reading

The new wp_register_block_types_from_metadata_collection() function is a very simple but neat way to eliminate individual block type registration calls from your PHP code, allowing you to focus exclusively on working on the block types in your plugin without having to modify anything else in the plugin.

Please see the following links for further reading:

  • TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. #62267
  • Relevant WordPress 6.7 dev note about the previous block type registration enhancements

Props to @gziolo, @stevenlinx for review and proofreading.

Update (2025-04-16): As of @wordpress/scripts version 30.14.0, a bug regarding blocks manifest generation was fixed. This post was updated accordingly to recommend the --blocks-manifest argument of the build command in the NPM scripts to use instead of the build-blocks-manifest command in combination with other commands.

#6-8, #dev-notes, #dev-notes-6-8

Core Team at WCEU 25 | Contributor Day

We’re so excited—next week, on June 5th, we’re heading to Basel for WordCamp Europe! 🎉 The event kicks off with Contributor DayContributor Day Contributor 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://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., a fantastic opportunity to come together and help shape the future of WordPress.

New contributors are especially welcome!

Whether you write code or not, everyone can get involved with the WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
Wondering how? It’s easier than you think.

Buy WordCamp Europe 2025 Tickets now!

Our team on the Contributor Day

We’ll have several tables dedicated to the Core Team, and we’ve brought together a fantastic group of experienced contributors to guide and support you.

SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.Position
Benjamin ZekavicaBenjamin ZekavicaTable-Lead
George MamadashvilimamadukaCo Table-Lead
John BlackbournjohnbillionSupporter
Christoph DaumChristoph Daum (apermo)Supporter

Friendly Reminders for Contributor Day

⚠️ Before the event, we kindly ask you to prepare everything at home.

Please prepare your setup at home:
Install all necessary software, clone the repositories, and download Node.js packages and all software in advance! To avoid slowdowns or connection issues, we encourage everyone to limit heavy downloads during the event.

  • New to contributing? No problem!
    We have experienced mentors at each table who are happy to help you get started.
  • Bring your charger and adapters
    It’s going to be a full day – make sure your devices stay powered!
  • Join the conversation
    Don’t be shy! Ask questions, share ideas, and get to know fellow contributors.

Prepare at home 🏡

Register for a WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ profile and the WordPress.org Slack instance

The large majority of the communication around contributing to the WordPress open sourceOpen Source Open 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. projects happens on WordPress.org or in the WordPress Slack instance. Your first step should be to register for both in that order.

Docker / WordPress Development

To get started right away working with us on WordPress and the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ Editor, please make sure your technical setup is ready. You’ll need a laptop and access to all the accounts we’ve linked for you above.

WordPress Core

If you’d like to contribute directly to WordPress Core, you should start by forking the WordPress Development Repository. Then, make your changes in your own branchbranch A 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".. Once ready, submit a pull request referencing the related ticketticket Created for both bug reports and feature development on the bug tracker. number. The system will automatically detect the number and link your patchpatch A 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. to the corresponding ticket.

➡️ Go to the repository
➡️ Setup instructions can be found here

WordPress Gutenberg Editor

To contribute to the Gutenberg Editor, you don’t necessarily need Docker. Simply fork the Gutenberg repository, make your changes in a new branch, and submit a pull request. The only requirement is a recent version of Node.js.

➡️ Go to the repository
➡️ Setup instructions can be found here


Let’s contribute now! 🦸

Do you want to fix bugs or add new features?

Want to contribute to the future of WordPress? Whether you’re into fixing bugs or creating new features for the Gutenberg editor – your skills are needed! Learn how to get started and explore all the ways you can make an impact – more information available at the link below.

GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Repositories

WordPress Development Repo on GitHub
Gutenberg Plugin on GitHub

New contributor? We welcome you 🤗

These links are specially curated for new contributors who want to help with the WordPress Core or the Gutenberg Editor pluginPlugin A 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. They provide filtered resources and guidance to get you started smoothly and make meaningful contributions. Welcome aboard!

Do You Want to Help with Testing?

Want to make a real impact on WordPress? Help improve the platform by testing new features and catching bugs before they go live. Learn how you can get involved and support the community – all the details are in the link below.

Updating or adding Documentation

Great documentation helps users and contributors alike. Whether you enjoy writing guides, updating existing content, or translating for a global community – your input is essential.

Can’t be there in person?

No problem – you are welcome to ask your questions in the #contributor-day channel as well as in the #core channel. @mikachan and @audrasjb will be available throughout the day to assist you with any inquiries.

Sign up for our Contributor Day stats!

We want to make Contributor Day even better for everyone — and we need your help!
Please take a moment to fill out our quick form to share who participated, which tickets you worked on, and whether you’re new or a returning contributor.

Rest assured, the data you provide in Google Forms will be deleted after the event.
The summarized results will be published as a recap post on the Core Blogblog (versus network, site) — with contributors properly credited and tagged.

It only takes a few minutes — but makes a big difference!
The submission is now closed. ⚠️

We can’t wait to build the future of WordPress with you! 🙌

Props to @francina for review this article.

#core-team, #wceu-25, #wordcamp, #wordcamp-europe-2025

Summary, Dev Chat, May 21, 2025

Start of the meeting in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., facilitated by @benjamin_zekavica. 🔗 Agenda post.

Announcements 📢

There are no major announcements from the past week.

Forthcoming releases 🚀

WordPress 6.8.2 and beyond

The CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Team is putting together a squad for future minor releases.

Next GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ version: 20.9

Gutenberg 20.9 is scheduled for release on Wednesday, May 28, 2025.

Discussion 💬

Refreshing Workflow Documentation

@SirLouen suggested updating the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. workflow keyword documentation, noting that some terms are outdated, misused, or conflicting. He plans to draft a revised version to provide clearer guidance for contributors and aims to publish it on the blogblog (versus network, site). The goal is to support future discussion and improve overall understanding of keyword use.

Improving the Local Development Environment

The current local development environment for WordPress is minimal and does not include all tools needed for comprehensive testing. Since different approaches are used, the documentation should be updated and improved to reflect the latest state.

Reducing Redundant Test Reports

@krupajnanda suggests limiting the number of test reports on simple tickets (e.g., UIUI User interface/UXUX User experience, accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)) to around 5 and adding a message to guide contributors to more important tickets, to reduce redundant testing. @jorbin and others agree but emphasize that this shouldn’t be automated, as a person needs to verify the validity of test reports.

Additionally, once enough test reports are received, the needs-testing label should be removed to focus efforts on tickets still requiring testing.

Open floor 🎙️

Review Needed: Unicode Email Addresses

@agulbra is requesting a review for ticketticket Created for both bug reports and feature development on the bug tracker. #31992. The code was written last year, but it’s now ready to be merged since PHPMailer has released the required dependencies. @ironprogrammer has already reviewed it and suggested asking for further feedback here. It would be great if someone could take a look. Thanks!

Call for Core Bug Tickets for the WordCampWordCamp WordCamps 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. Europe 2025 | Contributor DayContributor Day Contributor 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://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/.

@benjamin_zekavica mentioned that preparation for the WordCamp Europe Contributor Day in Basel should begin. To support this, suitable tickets need to be collected. If anyone finds higher-priority tickets that could be worked on during the event, they are encouraged to add them as comments in this article. This would help streamline the preparation process.

#6-8, #core, #dev-chat, #summary

WordPress 6.8 will use bcrypt for password hashing

Note: This article has been updated with additional technical information about the structure of password hashes that may be relevant to developers of plugins that directly handle them.

The underlying algorithm that’s used to hash and store user passwords in the database will be changed in WordPress 6.8 from phpass portable hashing to bcrypt. The adoption of bcrypt hardens password security in WordPress by significantly increasing the computational cost of cracking a password hash.

In addition, application passwords, user password reset keys, personal data request keys, and the recovery mode key will switch from using phpass to the cryptographically secure but fast BLAKE2b hashing algorithm via Sodium.

No action needs to be taken by site owners or users as a result of these changes. Passwords and security keys that were saved in prior versions of WordPress will continue to work after updating to 6.8. Users don’t need to change or reset their passwords, logged in users will remain logged in, and their sessions will remain valid.

When a user first subsequently logs in after the update – or when they next change their password – their password will automatically get rehashed with bcrypt and resaved in the database. Application passwords and security keys will not get automatically rehashed, but an existing hash will remain valid if it was generated prior to WordPress 6.8 and used before it expires.

Note that post passwords will continue to use phpass portable hashing for now. This may change in the future after further investigation has been done on how best to improve the hashing and checking mechanism of post passwords.

Portability

Hashes that are generated by the phpass portable hashing algorithm are portable between different sites, environments, and servers. This portability doesn’t change with this switch to bcrypt and BLAKE2b, so you can move your database from one server to another and update to newer versions of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher and WordPress and the password hashes will continue to function as expected.

Updates to password handling functions

The wp_hash_password() and wp_check_password() functions have been updated to use the PHP native password_hash() and password_verify() functions with the bcrypt algorithm and SHA-384 pre-hashing. Both functions retain support for the $wp_hasher global object in case that’s being used to implement an alternative hashing mechanism.

The wp_check_password() function retains support for passwords that were hashed using phpass, which means existing password hashes won’t be invalidated.

A new wp_password_needs_rehash() function has been introduced as a wrapper for password_needs_rehash(). If a pluginPlugin A 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 needs to adjust its logic then the password_needs_rehash filterFilter Filters 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. can be used. The function is also pluggable, so it can be overridden if absolutely necessary.

Pre-hashing with SHA-384 is implemented in order to avoid the 72 byte length limit imposed on passwords by bcrypt. Password hashes are therefore stored with a $wp prefix to distinguish them from vanilla bcrypt hashes which may be in use via a plugin. By default this means the full prefix will be $wp$2y$.

New fast hashing functions

The following functions have been introduced as wrappers for the cryptographically secure but fast BLAKE2b algorithm via Sodium:

  • wp_fast_hash()
    Used to hash a string that is randomly generated using sufficiently high entropy, preferably over 128 bits for values that don’t have a corresponding expiry mechanism.
  • wp_verify_fast_hash()
    Used to verify a hash generated via wp_fast_hash(), with fallback support for phpass portable hashes.

Do developers need to do anything?

Code that calls wp_hash_password() and wp_check_password() will continue to work as expected and does not need to change.

Code that directly handles phpass hashes may need to be updated, for example:

  • Code that assumes the existence of the $P$ prefix on hashes. The code will need to be updated so it either doesn’t need to inspect the prefix of the hash at all, or updated to handle both the new prefixes and hashing algorithms and legacy hashes:
    • The $wp$2y$ prefix will be the new default for user passwords in WordPress and represents a SHA-384 pre-hashed bcrypt hash.
    • The plain $2y$ prefix may be used by existing plugins that use bcrypt hashes without pre-hashing.
    • The $generic$ prefix for a BLAKE2b hash used for application passwords and security keys.
    • A hash starting with $argon2 if a site opts in to using an Argon2 algorithm (see below). Note that any non-bcrypt algorithm won’t use pre-hashing and therefore won’t include $wp at the start of the prefix.
    • The old $P$ prefix for a phpass portable hash which will remain in wide use.
    • A legacy plain MD5 hash, which is a 32 character hexadecimal string.
  • Code that otherwise directly interacts with the hashed value of a user password. If such hashes are validated directly, this should be done via wp_check_password().
  • Code that otherwise directly interacts with the hashed value of an application password, password reset key, personal data request key, or the recovery mode key. If such hashes are validated directly, this should be done via the new wp_verify_fast_hash() function.
  • Any plugin that overwrites the pluggable wp_hash_password() and wp_check_password() functions. Unless these functions specifically implement another hashing algorithm, they can be removed in order to allow the bcrypt implementation in 6.8 to take effect.

Alternative authentication mechanisms such as single sign-on (SSO), social login, or one-time login are unlikely to be affected by this change, however you should still verify whether your specific implementation includes any handling of password hashes or security keys. Multi-factor (MFA and 2FA) implementations are also unlikely to be affected by this change.

What about Argon2?

Servers that support Argon2 can enable its usage with this single line of code in WordPress 6.8 and later:

add_filter( 'wp_hash_password_algorithm', fn() => PASSWORD_ARGON2ID );

If necessary, the password_algos() function should be used to first check for argon2id support. Unfortunately it’s not possible to rely on Argon2 being available on all servers because it requires both libargon2 to be available on the server and for PHP to be built with Argon2 support enabled. The sodium_compat library does not provide an implementation of Argon2.

Acknowledgements

We can’t pretend that switching to bcrypt for user-generated passwords is a recent proposal. Ideally the switch would have been made back when the increase to the minimum supported version of PHP facilitated this change. However, this change has now been made and it helps future-proof further improvements to password hashing, including increases to the bcrypt cost in newer versions of PHP.

Many thanks go to the Roots team for maintaining their bcrypt password hashing package for WordPress as well as the many contributors on the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets and GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ pull requests.

Further technical information

Further technical information, technical FAQs, and implementation details can be seen on the GitHub pull request for this change and in the discussion on the Trac ticket.

In case you need to know:

  • User passwords are stored as a hash in the wp_users.user_pass field in the database.
  • Application passwords are stored as a hash in a JSONJSON JSON, 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. serialized object in the wp_usermeta table using the _application_passwords key.
  • User password reset keys are stored as a hash in the wp_users.user_activation_key field in the database.
  • Personal data request keys are stored as a hash in the wp_posts.post_password field in the database against the post that represents the personal data request.
  • The recovery mode key is stored as a hash in the recovery_keys option in the wp_options database table.

Thanks to @desrosj and @joehoyle for helping review this post.

#6-8, #dev-notes, #dev-notes-6-8

Dev Chat Agenda – May 21, 2025

The next WordPress Developers Chat will take place on Wednesday May 21, 2025 at 15:00 UTC in the core channel on Make WordPress Slack.

The live meeting will focus on the discussion for upcoming releases, and have an open floor section.

The various curated agenda sections below refer to additional items. If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.

Announcements 📢

  • There are no major announcements from the past week.

Forthcoming releases 🚀

WordPress 6.8.2 and beyond

  • The CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Team is putting together a squad for future minor releases.

Next GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ version: 20.9

Gutenberg 20.9 is scheduled for release on WednesdayMay 28, 2025.

Discussions 💬

The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the Core Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion.

Refreshing Workflow Documentation

@sirlouen suggests updating the workflow keyword documentation, as some terms are outdated, misused, or conflicting. He proposes drafting a clearer version to publish on the blogblog (versus network, site) for better contributor guidance.

Improving the Local Development Environment

The current WordPress development setup makes certain testing tasks (like email testing) harder than necessary. @sirlouen recommends adding helpful tools to make the environment more complete and testing more efficient.

Reducing Redundant Test Reports

@krupajnanda points out that some simple tickets, especially UIUI User interface/UXUX User experience and accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) ones, receive too many test reports, while more complex tickets are often ignored. She proposes setting a soft limit (e.g. 5 reports) and adding a message to guide contributors to other important tickets.

Open floor  🎙️

Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.

Please include details of tickets / PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.

#6-8, #agenda, #dev-chat

Call for 6.8.x Release Managers

WordPress 6.8.0 was released April 15,2025. Following this release, work will continue with regular, planned maintenance or minor releases. While the work of a major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. team includes people filling approximately 16 different positions, maintenance release teams generally are considerably smaller, often 1-3 people. Minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. managers are responsible for:

  • Triaging bugs in coordination with committers and component maintainers.
  • Drafting announcements for the release.
  • Preparing for and running release day activities.
  • Updating the documentation on minor releases so that it gets better each time.

Members of the 6.8 release cohort are encouraged to stay on as release managers for maintenance releases, but it is not required to have been on a major release squad in order to be on a minor release team.

Since 6.9 is not currently scheduled until 2026, we are not asking folks to lead minor releases for 9+ months. Rather, we are looking for folks who could help lead for shorter periods of time, like 3 months. If folks are able to lead for a longer period of time, that’s wonderful, but we expect to rotate folks in and out every 3 months so that no single person has to shoulder the work through to the next major release.

If you are interested in volunteering to be a release manager for the 6.8 maintenance releases, please comment on this post.

Thanks to @jeffpaul, @jorbin, @joedolson for reviewing this post before publication.