WordPress 6.1 Field Guide

WordPress 6.1 Release Candidaterelease 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 is out and it’s time to take a look at what changes we can expect. Release squad and many contributors worked hard on both TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 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/; with more than 120 enhancements and feature requests, 241 bug fixes, 42 other blessed tasks, which makes it over 400 tickets in Trac; and 50 Trac pull requests bringing 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/ changes into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. In Gutenberg repo there were 1684 pull requests of which 425 new features and enhancements and 428 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, while the rest is tooling, testings, documentation, and code quality.

New release comes with massive performance improvements, 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) enhancements, first default 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. based themes marked as accessibility ready, new 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 functions, private functions being open for public use and many more.

Performance

With 45 Trac tickets for 6.1, 19 components got various performance improvements. The most significant improvements arrived in WP_Query and 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/., which will impact a large portion of your next page load.

If there is one thing you take from performance updates, let it be caching queries in WP_Query. It’s been a long dream for many developers and, once you test it, it will be all that you hoped for. REST API is richer for several priming caches and lighter for prepare_links (if you want it). Site Health will check your Persistent Object Cache and Page Cache, while several private Cache 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. functions are now public. You’ll also be able to flush cache by group, declare supported cache features, validate cache keys and more.

Besides Query, REST API, Site Health, and Cache API, performance improvements can be found in 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, Bootstrap, Media, Post (Post Types), Editor, Database and many other components. There are too many changes to mention them all here, but you are invited to read the Field guideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. on performance improvements in WordPress 6.1.

Other performance improvements:

  • Posts, Post Types – Post title should not be translatable in get_user_data_from_wp_global_styles method. #55392
  • Quick/Bulk Edit – Check the show_in_quick_edit taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. property when processing the data for bulk edited posts. #42474
  • 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. – Use latest_id as the array key for the latest revision ID. #55857

Accessibility

Similar to performance, accessibility improvements arrive in 28 Trac tickets, spread over 13 components. We have first block-based bundled themes marked with accessibility ready tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.), Twenty Twenty-Three and Twenty Twenty-Two. Forms, site/template and block editors, administration screens and many more accessibility improvements are coming in with 6.1 release.

Block Editor

WordPress 6.1 is bringing 10 Gutenberg releases into core – 13.1, 13.2, 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9, 14.0, and 14.1.

Among many changes in these 10 releases of the 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, a lot of effort was made in making blocks and other Gutenberg features more available in classic themes, which will ensure easier transition to hybrid and block-based themes.

New ways to extend various parts of block editor tools which were very much needed in everyday development, such as scaffolding block variants with create-block tool, content locking updates, filtering theme.json data, extending Query block, Style Engine, new ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hooks for easier data access, and many more.

Themes

Themes are getting more control over styling elements, layout, and navigation while classic themes also get control over block-based template parts and theme.json. Read all about these in dev notesdev 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. below.

Updated Settings and Styles 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.

New server-side filters in WordPress 6.1 will allow hooking into theme.json data (see 56467 and 54251 for more info).

REST API

REST API gets nice improvements for /search endpoint as well as pretty-printing JSON responses, which can be added as query parameter but also controlled via rest_json_encode_options 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..

Administration

Login and Registration

Media

In 5.8 we welcomed support for WebP image format and excitement was high when generating WebP format was merged into core (54097, 54094, and 54086) for 6.1. However, this commit has been reverted in 54226 with recommendation of integrating the feature into the Canonical plugin.

Changes in #54788 allow for the muted property to be used in video elements, which solves for content that wishes to autoPlay when a page is viewed.

Database

A file containing the wpdb class is renamed from wp-includes/wp-db.php to wp-includes/class-wpdb.php to conform to the coding standards. If you’ve been including this file directly, do not worry – a new wp-db.php file is created and it’s loading the old, now renamed file. Read more in #56268.

MariaDB 10.2 has reached EOL (end of life). The minimum version of MariaDB supported is now 10.3 (see #55791).

Other developer updates

As mentioned above, WordPress 6.1 comes with a serious number of new hooks and functions, which will make Miscellaneous 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. very useful for theme and plugin developers.

But wait, there is more!

Application Passwords

Allow a Super Adminadmin (and super admin) to set an application password on a site they’re not a member of. #53224

Autosave

Block autosaving from overwriting changes when locked from editing. #55659

Cache API

Prevent excessive notoptions key lookups. #56639

Charset

Normalize to Unicode NFC encoding before converting accent characters in remove_accents()#35951

Cron API

  • Modify _get_cron_array() to always return an array. #53940

Editor

  • Universalize functions for checking block editor status. #51819
  • Clarify that get_page_template() doesn’t work on block themes. #56394
  • Block Patterns: Add new Footers categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. #56416
  • Spacer block: color control (only text color) #43660 (background in next version)

Embeds

  • Support for Google Data Studio #55771
  • Pocket Casts as an oEmbed provider #55860
  • Tumblr reader URLs #56733

External Libraries

Several external libraries have been updated to their latest versions. These include PHPMailer, GetID3, Moment, Sodium Compat, jQuery, jQuery UIUI User interface, MediaElement.js, Clipboard.js, and Underscore

  • Add support for WebP images in the Thickbox library. #55786
  • Update PHPMailer to 6.6.4 #55976, #56016, #56413
  • Update the Underscore library for 6.1 #56030
  • Update Moment library for 6.1 #56031
  • Update jQuery UI library for 6.1 #56239
  • Update mediaelement.js to version 4.2.17 #56319
  • Update jQuery to version 3.6.1 #56451
  • Update Sodium Compat to 1.19.0 #56564, #56653
  • Update GetID3 to version 1.9.22 #56692

Formatting

  • Normalize to Unicode NFC encoding before converting accent characters in remove_accents() #24661
  • Replace all esc_url_raw() calls in core with sanitize_url(). #55852
  • Allow min()max()minmax(), and clamp() values to be used in inline CSSCSS Cascading Style Sheets.. #55966
  • KSES: Allow more layout-related CSS properties. #56122
  • KSES: Allow assigning values to CSS variables. #56353

General 

  • Formatting: Add support for Enums in is_serialized(). #53299
  • Replace phpversion() function calls with PHP_VERSION constant. #55680
  • Blocks: Remove duplicate use of realpath() in register_block_style_handle(). #56636
  • Block Editor: Remove repetitive calls to file_get_contents() in block editor settings. #56637
  • General: Remove file_exists() checks after calling realpath(). #56654
  • Blocks: Remove extra get_theme_file_path() calls in register_block_style_handle(). #56666
  • General: Ensure wp_rand() returns 0 when $min and $max values are equal to 0. #55194

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.

I18N: Introduce WP_Textdomain_Registry to store text domains and their language directory paths. #39210 

Login and Registration

  • Required fields in networknetwork (versus site, blog) registration. #54344
  • Explicitly associate errors with input fields. #54483

Media

Respect EXIF Rotations. #54937

Networks and Sites

  • Move global_terms_enabled() to its proper final resting place. #21734 
  • Use metadata API in *_network_options` functions. #37181
  • Store main site ID of a network in network options. #55802

Posts, Post Types

Correct the check for non-existing post in get_post_permalink(). #45329

Script Loader

  • Ensure block script is enqueued, regardless of render_callback. #56470
  • Added support for preload links (similar to resource hints) #42438

Taxonomy

  • Standardise the format used to describe arguments passed to actions and filters inside wp_insert_term() and wp_update_term(). #55441
  • Set use_desc_for_title to false by default in wp_list_categories() #55530
  • Associate field descriptions with fields. #55651

Upgrade/Install

Track php extensions and image library support for WebP and AVIF. #48116

Widgets

Store default options for uninitialized widgets. #54677

Thanks to @sabernhardt, @bph, @jeffpaul, @desrosj, @webcommsat, @spacedmonkey, @sergeybiryukov and @audrasjb for peer review.

#6-1, #field-guide