Roadmap to 6.5

WordPress 6.5 is set to be released on March 26th, 2024. This release brings greater design control and optionality, more robust 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. capabilities with new APIs, access to current block theme functionality for classic themes, and the start of the new adminadmin (and super admin) redesign. More specifically, these significant features include the Font Library for easy global font management, support for Appearance Tools in Classic Themes for more expansive design options, and more robust revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. across the editing experience (including revisions for template parts and templates). New APIs like Interactivity, Custom Fields, and Block Binding expand block capabilities and underpin features like partial sync patterns, and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher compatibility work ensures alignment with PHP versions. Rollback for 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 and theme updates enhances safety, and 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 address various components for an improved user experience. The first taste of the admin redesign as part of phase 3 efforts are planned for this release in an iterative and contained way by bringing a new experience to the template, template part, and pattern lists within the Site Editor.

As always, what’s shared here is being actively pursued, but doesn’t necessarily mean each will make it into the final release of WordPress 6.5.

For a more detailed look at the work related to the block editor, please refer to the 6.5 board.

Design tools

Font Library

The Font Library makes it easy for anyone to install, remove, and activate fonts across your site. It’s available globally, independent of the theme activated, similar to the Media Library. Any installed font, whether installed by a user or a theme, can then be selected across the editing experience.

Follow this tracking issue for more information.

Syncing specific blocks and attributes of patterns

Building upon synced patterns, pattern overrides (previously called partial sync patterns) would allow users to ensure a synced layout and style across patterns while allowing each instance of the pattern to have customized content. This allows for consistency in design across different pieces of content. For instance, consider a testimonial pattern in a grid. With the enhanced feature, someone can insert this testimonial pattern into multiple posts, ensuring that the layout and styling components, such as the overall design of the recipe card, remain consistent across instances. Meanwhile, the content, such as Name, Image, and Role, would be local to each instance allowing for individual customization. Additionally, folks would then be able to revisit and modify the design of the overall testimonial pattern without affecting the content in existing instances. Of note, this work will need to align with the following Custom Fields API and Block Binding API

Follow this tracking issue for more information.

Section Specific 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. and Colorways

Taking the high level styling system with features like style variations, section specific theme.json offers more granular control for defined parts of your site using that same underlying system. This is a broad set of work and, for 6.5, the aim is to bring color variations to group blocks via the idea of Colorways. Colorways is a subset of section-specific theme.json, with styling elements only. This option would only be available for Group blocks for 6.5 in a code only way except for a minor UIUI User interface to select. These styles would apply curated color, typography, border styles etc along with styles for elements (links, buttons etc). For now, the most common use case is a theme author creating them for a theme to provide a predefined set of colors that have been preselected based on appropriate contrast, aesthetics, and more. In the future, work is being explored to allow users to create them in the Styles interface. 

Follow this tracking issue for more information. 

Adoption pathways

Support for Appearance Tools in Classic Themes

Adding support for Appearance Tools opens a world of design options that, up until this point, have been only available with Block Themes, or themes using theme.json. For example, adding a simple border to a Group block requires support for Appearance Tools. Work is underway to allow Classic Themes to add support for most of these tools safely, without breakage, unlocking more design options for more sites in a big way.

Follow this tracking issue for more information.

Paving the way for improved Pattern management in Classic Themes

Thanks to some internal code changes, the path is being set for a future release to enable Classic Themes access to the new Patterns experience that the Site Editor provides. Separately, a link for Appearance > Patterns is going to be added for Classic Themes to make Patterns more readily accessible and visible as a feature. This will link to the current patterns experience already in Classic Themes.

Follow this tracking issue for more information.

Foundational experience

New data views for templates, template parts, and patterns in the Site Editor

This work kicks off aspects of the Admin Redesign effort in an iterative and contained way by bringing a new experience to the template, template part, and pattern lists within the Site Editor. The following features are planned:

  • Ability to display a table with specific fields, pagination and quick actions.
  • Toggling fields and sorting and filtering data by field.
  • UI for selecting entries and performing bulk actions.
  • Support for different layouts, like classic table, grid view (including gallery), with the option to display a side-by-side preview.
  • Support for saving and toggling between “views”, which are specific configurations of layouts, field visibility, etc.

This feature-rich experience provides immediate value both to the Site Editor and begins to lay the groundwork for future work related to Phase 3, including efforts around Workflows and Media Library.

Follow this tracking issue for more information.

Robust revisions

Revisions help create confidence when writing and creating, knowing your changes are always safely stored. For WordPress 6.5, templates and template parts will now display revisions, alongside broader upgrades to style revisions with plans for side by side comparisons, pagination, more detailed descriptions, and more.

Follow this tracking issue for more information.

Customize the Navigation block mobile overlay

6.5 seeks to move the needle with responsive controls by adding the ability to fully customize what your overlay menu will look like. The navigation overlay is the name for the menu that’s shown when you set and open a mobile menu. Having full control over this mobile menu would allow you to customize the colors, spacing, and blocks offering the option for a distinct menu experience across devices.

Follow this tracking issue for more information.

New APIs

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.

The Interactivity API aims to be a standard way to allow developers to add interactivity to the frontend of their blocks, like hearting a post or adding to cart without page loads. A standard makes it easier for developers to create rich, interactive user experiences, from simple cases like counters or popups to more complex features like instant page navigation, instant search, or carts and checkouts. After testing the API on specific coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. provided blocks for months in 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/ plugin and, more recently, in core with WordPress 6.4, there are a few remaining tasks to expose the API for extenders: “store refactoring” based on feedback from early adopters, server-side directive processing that covers SEO requirements and optimizes initial renders, and adding support for ES Modules and import maps. Each of these are projects in their own right and will need to be evaluated for the release. 

Follow this tracking issue for more information.

Custom Fields API

This feature aims to create a simple way of connecting block attributes and Custom fields/metadata. Because this is such a broad undertaking, a scaled back version is planned for 6.5 that would accomplish the following:

  1. Connect block attributes and custom fields without a UI. 
  2. Include a basic UI to create these bindings where the API can read the metadata value
  3. Add the possibility to edit the value of the metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. field directly through the editing experience.
  4. Add support for more core blocks based on importance and relevancy. 

Follow this tracking issue for more information.

Block binding API 

This API aims to connect block attributes to values, obtained from different sources, that might vary depending on the context. For example, a value like post_author that changes depending on the current post. This will expand the capabilities of existing blocks without the need to create new ones, which will empower theme developers and site owners. For example, having a heading block with the content of the Post Author without needing a new Post Author block. For 6.5, the work for this API will mainly be focused on serving other pieces of the roadmap, namely Custom Fields and Partial Sync Patterns. 

Follow this tracking issue for more information.

PHP compatibility work 

Several compatibility fixes are scheduled to ship with 6.5, with work underway to improve compatibility with PHP 8.0, 8.1, and 8.2.

Since the adoption of a tiered PHP 8+ compatibility plan, each release brings the opportunity to update official PHP compatibility information for the new, as well as previous, versions of WordPress. Using current data from each PHP 8.x version’s usage metrics and open compatibility issues, exceptions will be cleared or added, and updates applied to the version chart. Significant exceptions might also warrant a dedicated Make/Core post with additional details.

The official release of PHP 8.3 in late November means that site operators and hosting companies will want to know if WordPress 6.5 is compatible with the latest PHP. Technical exceptions called out on the PHP compatibility page do not provide many users a clear answer to this question. Barring any major issues with running 6.5 on PHP 8.3, it may be helpful to publish an official compatibility notice on WordPress/News (see this example clarifying WordPress 6.4 compatibility on PHP 8.1 and 8.2).

Rollback for plugin and theme updates for automatic updates

Building on prior efforts released in WordPress 6.3, rollbacks for automatic updates to plugins is underway. Specifically, this means that checks will be added to ensure that an updated plugin does not cause a PHP fatal error when the plugin is active during an auto-update.. If it does, this error is captured and the previously installed version is restored, along with an email sent to the site admin.

Follow this trac ticket for more information.

Plugin dependencies

Currently, any plugin that requires another plugin (i.e., a dependency) is on its own to make sure admins install the dependency since the plugin won’t work without it. To ease that process for everyone involved, work has been underway to create a consistent method to handle dependencies and provide a clear pathway for folks to know the relationship and take proper action while installing these kinds of plugins. Namely, the current approach prevents activation of a dependent plugin if its dependences are not installed and activated. If dependences suddenly become unavailable (such as if a dependency’s directory is manually deleted), the dependent plugin is automatically deactivated. To learn more about this effort, please review the Feature Project: Plugin Dependencies post.

Follow this trac ticket for more information.

Continued performance improvements

While performance is a constant focus and each new feature must be reviewed for performance impact, a few priority projects are on the performance team’s list to address for 6.5:

  • Revised translation loader to make localized sites more performant.
  • Enhance performance of (block) templates, template parts, and patterns with selective caching.

Outside of these larger initiatives, typing performance is receiving a specific focus with major improvements expected.

Bug fixes and UXUX User experience iterations

In TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., there are already 41 tickets closed and 9 set for early across various components and focuses. It’s still early in the cycle so expect these efforts to continue. Additionally, various main tools and features of the editing experience have planned iterations like List View, background image support for the Group block, revisiting template vs content editing modes, expanding and refining block renaming, aligning page edit features in Site Editor and Post Editor, and adding a box shadow component

Raising the minimum version of MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/.

MySQL 5.0 was initially made generally available in 2005 and reached its end of life (EOL) in January of 2012, making it unsupported and insecure for over 12 years. This is extremely old and this requirement is being raised. In WordPress 6.5, the minimum required version of MySQL will be raised from 5.0 to 5.5.5. 

Read this post for more information.

Thank you to @richtabor @ironprogrammer @afragen @priethor @saxonafletcher for their help with this post.

Changelog

  • Jan 23rd 2024: updated the improved pattern experience section to clarify what’s being added for 6.5

#6-5, #release-roadmap

WordPress 6.5 adds AVIF support 

WordPress 6.5 supports AVIF, a modern image format that offers significant improvements in image quality and compression over previous formats like JPEG, PNG, and even WebP.  AVIF images can be up to 50% smaller than JPEGs while maintaining the same image quality. AVIF images also support a wide range of colors (including HDR) and produce sharper images than JPEGs, especially in areas with high detail.

From WordPress version 6.5 forward, you can upload and use AVIF images in WordPress just like you would a JPEG or PNG image today – as long as your hosting environment supports AVIF. Switching to the AVIF format for your images is likely to improve your site’s performance and your site visitor’s experience. 

How AVIF helps you

AVIF images are significantly smaller than their JPEG equivalents, so pages load more quickly and take less bandwidth to transmit. AVIF images still get all of the benefits of the responsive images, Fetch Priority, and lazy loading that WordPress supports by default. Finally, AVIFs are supported in all major browsers, so most sites can start using them today.

Creating AVIF images

Many image editing tools support exporting to AVIF. You can also use command line conversion tools or web based 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. tools like Squoosh. Once you save your images as AVIF, upload them to WordPress and use them like you would any other image. WordPress can also create AVIFs for you automatically, for more details, see the FAQ item below.

Using AVIF images in WordPress

AVIF images work like any other image format in WordPress, with a few important notes:

AVIF in WordPress depends on support in your web server’s image processing library (WordPress has built-in support for both Imagick and LibGD for image processing). You can check for AVIF support in wp-adminadmin (and super admin) by visiting Tools -> Site Health, clicking the “Info” tab and expanding the “Media Handling” section, then finally looking for “AVIF” in the list of supported formats.

If your audience includes a significant number of users on an unsupported browser, either avoid using AVIF images, or enqueue a browser polyfill.

FAQ

Q: How do I adjust the compression level used for generated AVIF images?

The wp_editor_set_quality 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 to set the quality setting. The passed mime type enables setting by type, for example:

// Use a quality setting of 75 for AVIF images.
function filter_avif_quality( $quality, $mime_type ) {
if ( 'image/avif' === $mime_type ) {
return 75;
}
return $quality;
}
add_filter( 'wp_editor_set_quality', 'filter_avif_quality', 10, 2 );

How can I output lossless AVIF images?

Using a compression level of 100 will set AVIF to its lossless mode.

Q: Can WordPress create AVIF images when I upload JPEGs?

Yes. Developers can use the image_editor_output_format filter to specify this type of transformation for uploads. Here is an example:

// Output AVIFs for uploaded JPEGs
function filter_image_editor_output_format( $formats ) {
$formats['image/jpeg'] = 'image/avif';
return $formats;
}
add_filter( 'image_editor_output_format', 'filter_image_editor_output_format' );

If I use WordPress multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site, will all my sites work with AVIF images?

No. Multisite stores the file types that users are allowed to upload when a site is created. We are still working on improving this in #53167. In the meantime, to ensure all existing sites on a networknetwork (versus site, blog) allow AVIF files, you can use the site_option filter in a network mu-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 to add avif to the allowed file types for all network sites:

// Ensure all network sites include AVIF support.
function filter_site_option_upload_filetypes( $filetypes ) {
$filetypes = explode( ' ', $filetypes );
if ( ! in_array( 'avif', $filetypes, true ) ) {
$filetypes[] = 'avif';
}
return implode( ' ', $filetypes );
}
add_filter( 'site_option_upload_filetypes', 'filter_site_option_upload_filetypes' );


Thanks to @stevenlinx and @westonruter for reviewing this post.

#6-5, #core-images, #dev-notes, #dev-notes-6-5, #images

Summary of Hallway Hangout on overlapping problems in the Site Editor

This is a summary of a Hallway Hangout that was first announced on Make Core. The aim was to have a shared space where we could talk synchronously about overlapping problems facing the site editing experience.

Video Recording:

Notes:

Notes are somewhat provided by some AI tooling but, unfortunately, wasn’t quite on point enough for me to use entirely. If anything is off or missing, please let me know.

The hallway hangout focused on discussing issues and problems users experience with the Site Editor, including changing something across an entire site or just for one 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., pervasive inconsistencies in user interfaces, understanding inherited values and options, and determining what can and cannot be edited. This came out of a public blog post on the topic.

We discussed the need to improve documentation and educate users to help address these overlapping problems. We chatted about the what’s underneath the desire to not ship any new features and that some of these areas of problems require new features to be fixed. We discussed how some 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/ features are released in stages across various releases ultimately paving the way for greater work to be done, like 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. released in 6.4 and expanded upon for 6.5. Another example that was mentioned was content-only locking, which was added into a release without a UIUI User interface as it was a foundational part of a larger roadmap (overriding content in patterns needed this work for example). Part of what needs to be done here to is to better communicating how new features connect to and build upon each other. In many cases, polishing these experiences and reducing confusion has been a major focus of many of the last releases.

We discussed how it feels like we’re caught in between right now and there are different UI experiences floating around between the customizerCustomizer Tool 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., site editor, and then page builders building on top. In a perfect world, the page builders use what’s being built in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and the experience of using blocks feels more natural, whether just in the block editor or in the site editor (instead of those feeling like different experiences). It’s also tricky to come up with solutions that don’t just surface the complexity without providing clarity too. It’s both the most rewarding and most difficult to cover the wide range of use cases WordPress seeks to cover.

We chatted about using the experimental flag in Gutenberg 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 to allow incremental exploration before features are merged to core for some features. Tensions exist between accumulating features quickly in Gutenberg vs bottleneck of merging to core releases. Folks want to see more efforts made to document feature decisions and UI changes at the same level as core tickets, with complete descriptions. Getting feedback into UI decisions as much as possible will help with this too as we should make changes based on feedback and design direction combined. It would be great if more hosts ran the Gutenberg plugin directly and gave feedback to help with this. At this point, the #outreach channel was plugged as was the new outreach group in 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/ to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” folks who have opted in to provide feedback.

We discussed differentiating user capabilities for blocks and experiences based on user roles and the context of what they are trying to do on a site. More work needs to be done to explore and improve user capabilities. It was suggested that having more Core team members build real sites could help surface important issues and help prioritize work. Right now, we do see this happening with the Create Block Theme allowing folks to build block themes directly with the Site Editor and surface gaps. The same is true of each time a default theme is made and the gaps that are surfaced and fixed as a result. As much as possible, building real sites or working with folks who do has always been and remains critical.

Feedback from folks in the agency space centered around how agencies can’t ensure brand standards due to inability to lock down with GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/. when content can change in the editor. It’s important to find ways to reassure clients that brand standards can still be ensured with new workflows. The same problem exists on the broader 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/ site so there are big opportunities for learnings and feedback. In some cases, folks tried the Site Editor last year and need to be invited back in with the latest & greatest to try once more with additional plugins to fill the gaps for now. In other cases, folks are successfully using it. Opened this developer blog idea after the fact to have agencies start sharing how they’ve successfully used the Site Editor process wise.

A new “overlapping problem” that @annezazu will add to the post is around the swirling experience of gradual adoption, extension, and curating of the editing experience. How do we make it as seamless as possible and have it make sense to folks? Expect the post to be updated with more thoughts there.

Towards the end, we also discussed issues everyday users face with site editing, the need for better onboarding, and a call to join more WordPress meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. events. The “usual suspects” came up particularly around editing the homepage, the pain of the template hierarchy being exposed, missing settings in the Site Editor, etc. We also discussed an unfortunate experience someone had in giving feedback but feeling very dismissed. This is not something any of us want anyone to feel and it’s important we engage constructively. We also discussed how the majority still use classic themes and the importance of respecting both in discussions.

To close, we talked about how these are the toughest problems to solve! They are not easy by design and there’s a lot of appreciation for everyone who is willing to engage in these topics. We’re very much listening and I wouldn’t have been able to write the post to begin with if we weren’t. The biggest next step is to hold an additional hallway hangout in the future around one of these areas with a large design presence to help present solutions, discuss potential drawbacks, and see how we can move forward.

#gutenberg, #hallway-hangout, #outreach, #site-editor

I18N Improvements in 6.5 (Performant Translations)

Various internationalization (i18n) improvements are in WordPress 6.5, and this developers note will focus on these.

New localization system with improved performance

Over the past year, WordPress contributors have meticulously analyzed performance of the existing i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. system in WordPress and ultimately created a new Performant Translations feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. that provided a completely overhauled system with significantly better performance. After thousands of 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. testers and a merge announcement late last year, this new library is now included in WordPress 6.5! See #59656 for all the details.

The Performant Translations 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 is still useful and will continue to be maintained to build on top of the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. solution with a distinct additional feature. As is already the case today, the plugin will automatically convert any .mo files to PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files if a PHP file does not currently exist. This is useful for sites where translations are not coming from translate.wordpress.org or only exist locally on that server.

This new library is faster at loading binary .mo files and uses less memory. It even supports loading multiple locales at the same time, which makes locale switching faster. In addition to that, it supports translations contained in PHP files, avoiding a binary file format and leveraging OPCache if available.

The new library is so fast, in fact, that it paves the way for the Preferred Languages feature plugin to merge translations of multiple locales by default starting with WordPress 6.5.

While this is in large part a silent and backward-compatible under-the-hood change, there are still a few things to be aware of:

New .l10n.php translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. file format

When downloading language packs from 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/, there will be a new .l10n.php file in addition to the .mo and .po files you are already familiar with. If an .mo translation file has a corresponding .l10n.php file, the latter will be loaded instead, making things even faster and use even less memory.

This is a progressive enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature., so if there’s only an .mo file but no PHP file, translations will still be loaded as expected. However, the opposite is also true! So you can theoretically use only .l10n.php translation files in your project and features such as the just-in-time translation loading continue to work. Right now, WordPress still expects corresponding .po and .mo files for things like update checks. However, this limitation will be addressed in the future, see #60554 for more information.

Note: if you don’t see any .l10n.php translation files in wp-content/languages yet, it might be that the language pack hasn’t been updated in a while, i.e. there were no new translations.

Here’s an example of a PHP translation file as supported by WordPress 6.5:

<?php
return [
'project-id-version' => 'WordPress - 6.5.x - Development',
'report-msgid-bugs-to' => 'polyglots@example.com',
'messages' =>
[
'original' => 'translation',
'contextEOToriginal with context' => 'translation with context',
'plural0' => 'translation0' . "\0" . 'translation1',
'contextEOTplural0 with context' => 'translation0 with context' . "\0" . 'translation1 with context',
'Product' => 'Produkt' . "\0" . 'Produkte',
],
];

Note: EOT here stands for the “End of Transmission” character (U+0004, or "\4" in PHP). It’s the same delimiter as in gettext used to glue the context with the singular string.

Generating PHP translation files

If you would like to generate these PHP translation files yourself, version 4.0 of GlotPress, the plugin that powers translate.WordPress.org, already supports the new .l10n.php format.

In addition to that, WP-CLI 2.10.0 (i18n-command 2.6.0) provides a new wp i18n make-php command to create these PHP files from a given .po file. Examples:

# Create PHP files for all PO files in the current directory.
$ wp i18n make-php .

# Create a PHP file from a single PO file in a specific directory.
$ wp i18n make-php example-plugin-de_DE.po languages

If you are developing a WordPress plugin that deals with translations, you can also use the new WP_Translation_File class to convert an .mo file into a PHP file. Example:

$contents = WP_Translation_File::transform( $mofile, 'php' );
if ( $contents ) {
file_put_contents( $path_to_php_file, $contents );
}

New filters to customize this behavior

If you would like to disable the support for PHP files for some reason; for example, if you don’t have any yet in your project and want to prevent the extra file lookup operation, you can use the new translation_file_format 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. to change the preferred format (default is php) like so:

add_filter(
'translation_file_format',
static function () {
return 'mo';
}
);

The existing load_textdomain_mofile filter can still be used to filter the .mo file path for loading translations for a specific text domain. However, it only works for .mo files. To filter the path for a translation file, be it a .l10n.php or a .mo file, use the new load_translation_file filter.

Working with the $l10n global variable

Previously, when loading translations, WordPress would store an instance of the MO class in the $l10n global variable. With WordPress 6.5, this will be an instance of a new WP_Translations class that acts as a shim with similar characteristics. If your project directly works with this global variable or the MO class in some way, this is an area to keep an eye on.

Cached list of language file paths

This another slight performance improvement but unrelated to the new localization library covered above.

In places such as get_available_languages() and WP_Textdomain_Registry, WordPress used to directly use the glob() function to retrieve all .mo files in a specific directory. This is important for just-in-time translation loading and generally knowing which translations are installed. However, on sites with a large number of language files, the glob() operation can become expensive.

Because of this, a new caching mechanism was introduced in #58919 / [57287]. The file lookup is now handled centrally in WP_Textdomain_Registry and stored in the object cache in the translations group, with the cache key having the format cached_mo_files_<hash>, where <hash> is the MD5 hash of the scanned directory, e.g. wp-content/languages. The cache is cleared whenever language packs are updated.

Also, the lookup now also scans for .l10n.php files in addition to .mo files, in case only the former exist on a site.

More questions? Please let us know

If you have any questions, please leave a comment below or file a new ticket on Trac under the I18N component if you’ve encountered any bugs.

Props to @joemcgill, @stevenlinx for review.

#6-5, #dev-notes, #dev-notes-6-5, #i18n

Agenda, Dev Chat, Wednesday February 28, 2024

The next WordPress Developers Chat will take place on  Wednesday February 28, 2024 at 20:00 UTC in the core channel on Make WordPress Slack.

The live meeting will focus on the discussion of proposals and releases, updates on 6.5, and have an open floor section.

Additional items will be referred to in the various curated agenda sections, as below. If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please do continue to post details in the comments section at the end of this agenda.

Announcements

WordPress 6.5 Beta 3 was released on February 27, 2024. Thanks to everyone involved and who came to help test.

Forthcoming releases

Next 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.: 6.5

Updates from the release squad can be shared in the Dev Chat.

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/ release: 17.8

Gutenberg 17.8 is scheduled for released today and will include the these issues.

Discussions

This week the discussion will focus on any final priority topics that need to be raised prior to 6.5 RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 1.

Proposed topics

Feel free to suggest additional topics related to this release in the comments.

Highlighted posts

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor Updates

Props to @annezazu for collating and sharing this list.

Tickets for assistance

Tickets for 6.5 will be prioritized.
Please include detail of tickets / PR and the links into comments, and if you intend to be available during the meeting if there are any questions or will be async.

Open floor

Items for this can be shared in the comments.

#6-5, #agenda, #dev-chat

Proposal: What’s next for the Outreach program

Following the post Evolving the FSE Outreach Program, there was a transition period of six months after the 6.4 release and the end of Phase 2. Now let’s discuss what could happen after this period. 

This post recommends the next steps. Before that, some clarification of terms might be in order: 

  • Site builder = No code/low code user who builds sites for others
  • Extender: Developers/designers who build plugins and themes or work for agencies or as freelance developers/designers.

Because site builders and Extenders regularly intersect, the channel’s content and discussions will be relevant to both groups of users. 

A good first step could be to rename the channel from #fse-outreach-experiment to #outreach, as it will be about more than FSE, and no longer an experiment. 

Several projects could use 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/. support in the WordPress space for discussion, clarification, and overall ruminating on future features coming to WordPress. A list of discussions, sharing, and information that could be shared in the channel follows. None of them are exclusive, but they made the list because they don’t necessarily fit other channels. 

The ideas also don’t warrant a separate channel, but all ideas come from knowing that non-contributors need to connect with contributors. As noted in comments on the previous post, a clear outcome of the FSE Outreach program was that connecting in this channel facilitated participants’ first contributions and lowered the barrier to connecting with the open-source project. 

  1. The channel is a place for attendees and viewers of regular Developer Hours to connect with presenters. The discussion could cover the event’s topic beyond the live event. The same is true for the Hallway Hangouts. Resources for both events will be shared in the channel.
  1. Once the Test team, or any other team, issues a new call for testing, the feedback would be surfaced here in a conversation about challenges and to help answer questions.
  1. There might be a breaking change in an upcoming release that needs attention from extenders.The channel can provide space for additional discussion on workarounds, etc.
  1. Excerpts from the Dev Chat agenda/summary of the user-facing updates from contributors can be shared, if they are relevant for site builders and extenders.
  1. The channel can subscribe to the What’s New for Developers round-up posts feed, so posts are shared upon publishing.
  1. In collaboration with design and engineering teams, discussion from 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/ and TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. can be raised in the channel to solicit input from those interested in the topics.
  1. The outreach channel is also the place to point people to from other networks (X, Mastodon, or Facebook) when there is a need to discuss issues/topics that are outside the scope of the Support team and require a WordPress space to get a few people in from other teams involved. 
  1. The channel could also be a resource for MeetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. Organizers who have questions or need advice on facilitating local discussions about upcoming features. 

Independent of the list of activities, the #outreach (working title) Slack channel will continue as a central point of contact with the community.

This can only be a group endeavor if we want to broaden the reach and be a welcoming place for people interested in particular focuses of the software. Quite a few people raised their hands to be part of a continuation of the outreach program, be it to participate in discussions or to follow future calls for testing. If you are interested, please let us know in the comments! 

All feedback on this proposal is welcome. Here is a set of questions that could get you started: 

  1. Naming things is hard, so what do you think about the future name “outreach”? Any other ideas for a name? 
  2. What do you think about the eight ideas shared about what a conversation might look like in the channel? 
  3. Do you have any other ideas for community outreach that could have a place here? 

Feedback by February 12th would be appreciated. 

Nick Diego, Justin Tadlock, and I would like to invite contributors to a Hallway Hangout on February 20th, 2024, at 15:00 UTC to discuss this proposal, the comments, and the next steps. 

Props for review and input to @ndiego,@greenshady, @angelasjin, and @cbringmann.

#fse-outreach-experiement

Recap Hallway Hangout: What’s next for the outreach program?

A group of contributors came together to discuss the Proposal: What’s next for the Outreach program.

Participants were @fabiankaegy @ndiego @greenshady, @poena and @bph (facilitator).

We recorded the discussion and it’s available on YouTube.

The meeting discussed ways to improve the WordPress outreach program and user feedback processes.

Key points included:

Renaming the FSC Outreach channel to “Outreach” to broaden its scope beyond experiments.

The channel was renamed #outreach. Big Thank You to the #meta team. Come and join us.

Creating a 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/ team for contributors to provide early feedback on features through calls for testing.

During the discussion the problem came up how to connect developer working on WordPress features with extenders or agency developers. One suggested way is to create a new subteam in the WordPress GitHub organization called “Outreach”. This team is public and allows anyone on GitHub to use the @wordpress/outreach handle to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” the people in the listed there and ask them for feedback or testing. Similar groups are already available for “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. Themers” “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)”.  If you are interested in being part of the group, notice that in the comment and share your GitHub account.

This handle should be used to raise any issues or pull requests where someone is looking for feedback / testing. So if you are working on a feature and are hoping to get so me additional insights from a diverse set of users from different backgrounds, please don’t hesitate to ping this group.

Working with the testing team to organize smaller, more manageable calls for testing.

The two test team reps, @webtechpooja and @ankit-k-gupta will add a discussion to their next meeting of the test team on Feb 27, at 11 UTC. If you are a contributor interested in putting user call for testings together, you might want to join in the meeting.

Encouraging engineers to use the Outreach channel for feedback on new features earlier in development.

Contributors felt that sometimes soliciting input before a feature is fully merged and pushed to 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., it could use additional feedback from extenders and agencies. As example: Pattern overrides that don’t have a theme component and don’t alleviate the pain point that there is no way for theme developers to bundle synch patterns with overrides with their themes.

The information around new features or enhancements is not always easy accessible. There is a need to have an ongoing exchange between the engineering teams, test team and outreach contributors to determine the right timing for calls for testing.

Creating a wishlist for each upcoming release to gather input on user priorities.

This is referring to a post made before WordPress 6.4 WordPress 6.4: What’s on your wishlist? More research is required. It also overlaps with the Extensibility Issues Triage initiative that meets once a month to look at issues that concern extensibility and could be pushed forward. Next meeting March 14, 2024, at 12:00 UTC in #core-editor channel

The goal is to make the outreach program more accessible and sustainable, improve collaboration across teams, and help guide WordPress development through early and ongoing user and contributor input.

Props for co-writing to @fabiankaegy and for review to @greenshady and @ndiego.

#outreach

Data Liberation Next Steps

The recently published announcement of the Data Liberation initiative started some great conversations, and this follow-up post aims to provide additional direction. As a start, I’d like to draw on a few things Matt mentioned in the original announcement.

Migrating your site to WordPress or exporting all your content from WordPress should be possible in one click.

This is the big picture and what we’re aiming for. One-click. No worries.

It will be an iterative journey to get there, working with the intricacies of different platforms, finding ways to liberate content from walled gardens, and combining them all. 

I often hear about folks across the WordPress community duplicating efforts when creating scripts and workflows to move users to WordPress. Imagine if we shared those resources instead and built community-owned plugins that anyone could use!

But it should be more than plugins; workflows, tutorials, and helper scripts should be shared, too. I want this resource to have space to include moving from social networks, moving from a page builder to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks, switching from classic to blocks, and improving WordPress current canonical plugins for importing.”

This is a huge opportunity and a broad scope of things to contribute towards. Any of the items mentioned above would be valuable,  so I also want to highlight some specific things that would be great for us to work on as a community and where you can contribute with your thoughts.

Migrating from [Platform of your choice] to WordPress

Currently, migrating content from another platform can vary from simple (WXR exports for the win!) to complex (manually editing CSV files) to impossible. 

MigrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. solutions combine community plugins, proprietary plugins, guides, tips, and scripts. What can we, as a community, do to bring all of those together into a single solution for end users? Or, at the very least, a suite of solutions that end users can access from a single place, quickly finding the one that suits their needs?

Currently, a proposal centers around using the Playground as a tool for users to migrate their content and see a real-time, editable preview of what their site would look like in WordPress. 

An alternative suggests a hybrid approach where the platform of the source site is detected, and the user is guided and assisted through performing the migration.

Get Involved

  • Both the proposals mentioned above are promising and would benefit from further discussion – add your thoughts!
  • Got a tool to help with migrations that you’d like to open up to the Community? You can open a discussion or even just submit it!

Improving WordPress’ Import/Export format (WXR)

Currently, the WordPress eXtended RSS format (WXR) is used to import and export WordPress sites. It has also been adopted by other platforms (including Squarespace and Drupal) as a de facto standard for content portability.

There is plenty of room for improvement with the format (or to investigate other export format options) that are powerful, open, and accessible.

Get Involved

Page Builders > Blocks & Classic to Blocks

An important part of Data Liberation is to provide pathways for users who want to move to modern WordPress core blocks or between third party editors.

Many third-party tools and builders have blocks and features that aren’t matched in Core blocks, making it a tricky choice for those who would prefer to use 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. Thankfully, this proposal to introduce a directory of standalone ‘core’ blocks could help.

Get Involved

Migration Guides

While the end goal is for a ‘one-click’ solution to migrate to WordPress, there will definitely be cases (for now, at least) that will involve some manual work for users.

For these situations, work has started on simple, easy-to-follow guides that walk users through the steps to liberate their content in order to import it into WordPress. Even as the community develops tools, these guides will remain an important alternative.

Get Involved

In addition to the items mentioned above, I’m interested in hearing from the community about their broader thoughts and feelings about the Data Liberation initiative.

  • What is missing from this post that you’d like to see considered?
  • With such a broad scope, what should be focused on with the highest priority?
  • What other voices should be heard on this topic?

Feel free to share your thoughts in the comments, and let me encourage you to come and join the #data-liberation channel in the Making WordPress Slack.

Merge Announcement: Interactivity API

View the kickoff post, the status update post, and the Trac ticket for the 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..

Purpose & Goals

Currently, 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 authors implement their chosen 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/. frameworks (or vanilla JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.) to enhance user experiences on WordPress sites. There is no consistency or standardized pattern for developing frontend JavaScript in WordPress.

The Interactivity API provides a standard way for developers to add interactions into the frontend of their blocks.

The API has been designed and created with these requirements:

  • 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.-first and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher-first. Prioritizing blocks for building sites and server side rendering for better SEO and performance. Combining the best for user and developer experience.
  • Backward compatible. Ensuring compatibility with both classic and block themes and optionally with other JavaScript frameworks, though it’s advised to use the API as the primary method. It also works with 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. and internationalization.
  • Declarative and reactive. Utilizing declarative code to define interactions, listening for changes in data, and updating only relevant parts of the DOM accordingly.
  • Performant: Optimizing runtime performance to deliver a fast and lightweight user experience.
  • Send less JavaScript. Reduce the overall amount of JS being sent on the page by providing a common framework that blocks can reuse.  So the more that blocks leverage the Interactivity API, the less JS will be sent overall.

A live demo of what can be achieved was announced in the State of the WordState of the Word This is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what we’ve done, what we’re doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/..

Live site demo

In case you want to read more about the goals, you can refer to the initial proposal.

Project Background

The project started as an experimental plugin in early 2022. Then, the first API version debuted in Gutenberg 16.2 and has been continually refined until Gutenberg 17.7.

In WordPress 6.4,the Image, Search, File, Navigation, and Query coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks were refactored using the private version of the Interactivity API, addressing 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) issues and adding the long-time expected lightbox (or “expand on click”) feature for images.

The development has been done in 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/, using a Tracking Issue to monitor progress and a Discussions category to solicit feedback and offer guidance to developers who assisted in testing.

Implementation Details

The Interactivity API is a standard system of directives, based on declarative code, for adding frontend interactivity to blocks.

Directives are special HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. attributes that tell the Interactivity API to attach a specified interaction to a DOM element or to transform it, similar to HTMX or AlpineJS. Using HTML as the templating language enables the API to understand the directives both in the server (PHP) and in the client (JS).

As part of this project, and all the interactivity scripts are now implemented leveraging the new script modules which are also shipping in WordPress 6.5. All of them will only be loaded on the frontend if at least one interactive block is present, to avoid sending unnecessary JavaScript to the frontend.

Here is an example of an interactive block, with a JavaScript file in charge of increasing or decreasing a counter, and a PHP file in charge of counter initialization and rendering.

// JS File - viewScriptModule.js

import { store } from "@wordpress/interactivity";

const { state } = store("my-counter-block", {
 actions: {
   increaseCounter: () => {
     state.counter = state.counter + 1;
   },
   decreaseCounter: () => {
     state.counter = state.counter - 1;
   },
 },
});
// PHP File - render.php
wp_interactivity_state('my-counter-block', array(
   'counter' => 0,
))
?>

<div
   <?php echo get_block_wrapper_attributes(); ?>
   data-wp-interactive="create-block"
>
   <button data-wp-on--click="actions.increaseCounter">
       <?php esc_html_e( 'Increase', 'my-first-interactive-block' ); ?>
   </button>
   <p data-wp-text="state.counter"></p>
   <button data-wp-on--click="actions.decreaseCounter">
       <?php esc_html_e( 'Decrease', 'my-first-interactive-block' ); ?>
   </button>
</div>

This would result in a block like this one:

For developers looking to get started, there is a Getting Started guide available, with plans to transition it to a handbook in the near future.

Additionally, a detailed 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. will be released, providing further insights into utilizing the API and understanding its internal workings.

Modules and Import maps.

The Interactivity API brings along the support of Modules and Import Maps.

JavaScript modules have transformed the way developers write and organize JavaScript code. They provide a cleaner and more modular architecture, making code easier to maintain, test and reuse across projects.

With the addition of native support for registering and enqueueing JavaScript modules, WordPress can keep pace with web development by using efficient, effective and battle-tested methods to handle JavaScript libraries and their dependencies.

There will be another dev note about JavaScript Modules and a guide to use them.

Guide to Javascript Modules.

Contributions and Feedback.

The Interactivity API is intended to be a long-term project with future enhancements; feedback is highly welcome. The best way to reach out is via GitHub Discussions.

Code and documentation contributions are also welcomed, and the Gutenberg repository is the place to go.

Some examples of contributing could be:

  • Test the Interactivity API, create your own interactions, and share feedback about what you like and you don’t.
  • Suggest new features to include in the API.
  • Help creating tutorials or share demos that can inspire other people.

Spread the word

The more developers who use Interactivity API in their projects, the more consistency there will be in the WordPress ecosystem, and the less JavaScript will be sent to the world!

Feel free to spread the word about the Interactivity API in social media and events with your colleagues, friends, and everyone!

Props to @cbringmann, @gziolo, @swissspidy, @westonruter, @santosguillamot, @luisherranz, and @rmartinezduque for peer review.

#6-5, #feature-plugins, #feature-projects, #interactivity-api, #merge-proposals

Agenda, Dev Chat, Wednesday February 21, 2024

The next WordPress Developers Chat will take place on  Wednesday February 21, 2024 at 20:00 UTC in the core channel on Make WordPress Slack.

The live meeting will focus on the discussion of proposals and releases, updates on 6.5, and have an open floor section.

Additional items will be referred to in the various curated agenda sections, as below. If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please do continue to post details in the comments section at the end of this agenda.

Announcements

WordPress 6.5 Beta 2 was released on February 20, 2024. Thanks to everyone involved and who came to help test.

Gutenberg 17.8 RC release is planned for today, stable release scheduled for Feb 28, 2024. Please help test.

Forthcoming releases

Next 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.: 6.5

Updates from the release squad can be shared in the Dev Chat.

Call to test 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. versions of the release as they come out.

Call for Testers early draft for 6.5. Discussion on 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/. if you are able to help. Update – this is now closer to finalization and open for final comments.

Discussions

Check in on the experimental format we’ve been using for these meetings. has discussion on open proposals been effective? Are there topics that have not been covered that you’d like to see included?

Could you help curate a Call for Volunteers to review the open proposals on Make/Core and create a list of unresolved ones to discuss during Dev Chat meetings?

Highlighted posts

A Week in Core – February 19, 2024 – props to @audrasjb

Hallway Hangout: Let’s chat about overlapping problems in the Site Editor

Merge Announcement: Interactivity API

Data Liberation Next Steps

Summary, Dev Chat, February 14, 2024

Merge Announcement: Plugin Dependencies

Tickets for assistance

Tickets for 6.5 will be prioritized.
Please include detail of tickets / PR and the links into comments, and if you intend to be available during the meeting if there are any questions or will be async.

Open floor

Items for this can be shared in the comments.

#6-5, #agenda, #dev-chat