The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg.
16.7 is the last Gutenberg release ahead of the upcoming WordPress 6.4 release, so it’s packed with features and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. Exciting new features include the new Font Library for font management within the editor, lots of enhancements to pattern management, simplified lightbox functionality, and many UXUXUser experience enhancements.
This release consists of 331 pull requests authored by 88 contributors, including 7 new contributors! 🥳 🎉
The new Font Library allows users to install, remove, and activate typographic fonts from various sources in WordPress via the editor. The installed fonts are enabled globally, independent of the active theme in the /wp-content/fonts directory, similar to the Media Library. As part of this new feature, users can add fonts manually by uploading them from their local machine or choosing from a list of Google Fonts. (#53884 & #53307)
Import/Export of Patterns
It’s now possible to import and export patterns as JSONJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. files directly from the site editor’s patterns screen. This change mirrors the existing import/export functionality in the /wp-admin patterns screen, making it more straightforward for all users to migrate patterns between sites. (#54337)
Explore New Pattern Filtering
Pattern filters have been restructured, with filters now being housed within a dropdown at the top of the pattern list panel. A sticky headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. has also been added to the top of the list panel for improved navigation. (#54681)
Naming Group Blocks in the Editor
Group blocks can now be named using custom naming. Naming these blocks will update their name in the List View, making it easier to distinguish between blocks. This enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. marks another step forward as the Site Editor’s tools and features continue to expand. (#53735)
“My Patterns” CategoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. Reinstated in Post Editor Inserter
Prompted by feedback, the “My patterns” category has been reintroduced to the post editor’s inserter, providing a central place for users to view their custom patterns. (#54767)
Simplified Lightbox Functionality for Images
The Behaviors UIUIUser interface introduced as an experimental feature in Gutenberg 15.9 has been removed and replaced with an “Expand on click” toggle in the Image blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.’s Inspector Controls and in the Global Styles. (#54509) (#54509)
The support for Behaviors in the theme.json has also been deprecated and will be removed completely in Gutenberg 17.0:
Users who enabled the “lightbox” behavior in their theme.json file should migrate to a new syntax where the lightbox is simply a new block-level setting:
Note that the support for the “animation” value has been removed.
If you enabled the lightbox on any Image blocks using the previous Behaviors UI, please open and re-save posts that include those blocks to ensure they get migrated to the latest syntax.
With the removal of support for the “animation” value, all images will now only use the “expand” (zoom) animation, even if they had previously used the “fade” animation.
Background Image Control Added to Group Block
Background image support has been added to the Group block, in line with the color controls. (#53934 & #54439)
New Social Link Icon for X
A new social link icon has been added for the X service. It can be found when searching for “X” or “Twitter”. (#54092)
BlockSettingsMenu: Ensure only one block settings menu is open at a time. (54083)
Bundle the block copy handler within the BlockCanvas component. (54207)
Bundle the block selection clearer hook into the BlockCanvas component. (54209)
Ensure that ‘Duotone FilterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.’ color pickers have relevant labels. (54468)
Export ProgressBar to allow it to be used. (54404)
FormTokenField – add prop to allow saving of tokens onBlur. (53976)
SearchControl: Allow for 32px compact size, introduce option to change default size to 40px. (54548)
Block Library
#39457: Image block keep image size on replacing image. (49982)
Add __next40pxDefaultSize to featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. opacity control. (54389)
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Add design enhancements for the “enhanced pagination” setting. (54455)
Query Loop: Allow “enhanced pagination” only with core blocks. (54347)
Query block: Start prefetching on first click to next/previous. (54781)
Patterns
Add categories to user patterns, and allow filtering by these in site and post editor. (53835)
Add editing of pattern categories to site editor. (54640)
Add user categories to site editor sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. navigation screen. (53837)
Add user pattern categories to post editor inserter patterns tab. (53933)
Apply white background to the preview as a fallback. (54534)
Merge unsynced into inserter patterns tab and add paging and filtering. (54007)
Block editor: hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.: Fix rules of hooks violations (2). (48943)
Always show the total number of patterns even with only one page. (54813)
Typography
Font Face: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. from Core changeset 56500. (54218)
Font Library: Changing the upload directory to wp-content/fonts. (54122)
Font Library: Load collection JSON data from a URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in the collection configuration. (54067)
Font Library: Use wporg cdn to host the google fonts json data. (54795)
Themes
Theme Previews: Make the back button customizable. (54242)
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party
Remove ‘Footnotes’ and ‘Comments’ from the non-dynamic block registration list. (54154)
Media
Correct function name handleFileChange is replaced by wrong function name. (52250)
List View
Allow Escape key to deselect blocks if blocks are selected. (48708)
Try directing focus to the list view toggle button when closing the list view. (54175)
Add useStateWithHistory hook and use to show a block editor with undo/redo. (54377)
BlockEditor: Add BlockCanvas component = IframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. + BlockList + WritingFlow. (54149)
CreateTemplatePartModal: Disable the ‘Create’ button while saving. (54716)
Plugin
Ensure font-face styles are printed in iframe editors. (54313)
Font Face & Font Library: Load PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files only if the main class does not exist. (54103)
Gutenberg Plugin: Add hook to allow writing-mode as a safe CSS property. (54581)
Update cherry-pick script to correctly verify GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/CLICLICommand Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. setup. (54720)
Font Library: Ensure merged fontFace data is enconded as an array instead of an object. (54435)
Font Library: Fix duplicate variants with different file types. (54490)
Font Library: Setting wp_font_family custom post typeCustom Post TypeWordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. as _builtin and not plublic. (54559)
Font Face: Get name from “fontFamily” setting, not “name”. (54615)
Font Library: Fix modal width on mobile viewport. (54518)
Font Library: Fix space above theme fonts in font library modal. (54598)
Font Library: Fix error installing system fonts. (54713)
Font Library: Remove font files created by tests after tests run. (54771)
Font Library: Avoid rendering font library ui outisde gutenberg plugin. (54830)
Edit Widgets: Fix invisible action area when the top toolbar is enabled. (54329)
Fix top toolbar for the customizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. widgets sidebar control. (54255)
Global Styles
Font Library: Fix notification error for actions related to custom fonts. (54535)
Prevent layout changes from saving the whole inherited settings object. (54500)
Block API
Blocks: Fix incorrect placement for hooked blocks in the parent container. (54349)
Pass correct content argument to enter transforms. (54108)
Block Hooks: Avoid processing empty content for loaded templates. (54719)
Rich Text
Revert: Rich text: Copy tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) name on internal paste. (54301)
Interactivity API
Image: Fix block serialization test case to cover deprecation of behaviors. (54570)
Query Loop: Select first anchor inside Post Template with “enhanced pagination” enabled. (54730)
Icons
Fix ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. forwardRef warnings for TooltipAnchors. (54492)
History
Fix extra undo/redo step when removing or replacing all blocks. (54457)
Synced Patterns
Patterns: Apply layout and alignment to synced patterns in the editor. (54416)
npm Packages
Workflow: Fix the issue with npm publishing for WP major version. (54088)
Media
useMediaQuery: Avoid crashing on Safari < 14. (54023)
Nested / Inner Blocks
Fix: InnerBlocks allowed blocks change with different sizes. (53943)
Layout
Post Content: Ensure layout classnames are applied in readonly preview. (53864)
React i18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
Fix: InvalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. import in react-i18n documentation. (54308)
Design Tools
Background Image control: Use consistent button, ensure descriptive text accounts for no image selected. (54711)
Collaborative Editing
Make sure sync code only runs when experiment is enabled. (54710)
Core Data
core-data: Fix nested property access with undefined name. (54790)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Block Library
Comments form: Accessibility fixes for back-end. (54393)
Updates Edit and Save code examples to have matching open/closing tags. (53915)
[Docs: Getting Started / Block Development Environment] Updates on the text to improve clarity and preciseness. (54563)
documentation – Contribution TriagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.: Formatted text and changed some titles and structure. (54258)
documentation [Block Editor Handbook / Getting Started / Block Development Environment]: Fix links. (54571)
Add missing global declaration in DocBlockdocblock(phpdoc, xref, inline docs) of interactivity files. (54683)
Block editor: Remove __unstableElementContext and filter EditorStyles instead. (52888)
Improving error messages and codes in jest-console, matcher.js. (53743)
Indicate nested paths on __experimentalSaveSpecifiedEntityEdits. (54161)
JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. unit tests: Update popover matcher. (54168)
Image Editor: Fix ESLint warnings and remove unnecessary dependencies. (53506)
Pattern Category: Set ‘publicly_queryable’ to false. (54567)
Post Terms: Fix a ‘useSelect’ warning in the ‘usePostTerms’ hook. (54068)
Interactivity API
Prepare image lightbox for private version of the Interactivity API in 6 4. (54547)
Remove gutenberg_should_block_use_interactivity_api and the old implementation of interactive blocks. (54297)
Search block: Switch interactivity to the Interactivity API. (53343)
Site Editor
Remove Tooltip workarounds added in the site and block editor. (54450)
RevisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: Remove ‘gutenberg’ query param from revisions.php. (54166)
Puppeteer tests: Try to fix failing tests related to notices in core. (54452)
Remove accidental addition of perf test results (2). (54363)
Remove accidental addition of perf test results. (54355)
Update WPCSWPCSThe collection of PHP_CodeSniffer rules (sniffs) used to format and validate PHP code developed for WordPress according to the WordPress Coding Standards.
May also be an acronym referring to the Accessibility, PHP, JavaScript, CSS, HTML, etc. coding standards as published in the WordPress Coding Standards Handbook. to v3.0, and fix all reported Coding Standards issues. (53866)
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This latest release comes packed with improvements and bugfixes, including an enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to the List View in the post editor, introducing a horizontal scrollbar for heavily nested list views, a fix for the Cover BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. on Safari on iPad, addressing an issue where images with a “Fixed background” were zoomed in excessively, and more!
Table of Contents
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party-inserted blocks.
Captured toolbars.
Changelog.
Block hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same., formerly known as Auto-inserted blocks
On activation, plugins are now equipped with the capability to auto-insert blocks, enhancing the integration and automation between plugins and the Gutenberg editor. Early versions of this experiment were called Auto-inserted blocks, but after some discussion, they have now been dubbed Block hooks. (#52969, #54029, #54024, #54147)
Captured toolbars for an easier editing experience
Toolbars for child blocks are now seamlessly attached to their parent blocks, offering a more intuitive and organized editing experience. This feature is currently supported for Navigation, List, and Quote blocks. (#53699, #53697)
Other Notable Highlights:
Make mid size parameter settable for Query Pagination block. (#51216)
Add keyboard shortcut for duplicating blocks. (#53559)
Add toggle list view command in site editor. (53983)
Changelog
Features
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Popover: Update @floating-ui to latest version, remove custom fix for iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. positioning and scaling. (46845)
AlignmentMatrixControl: Replace act() with userEvent. (53703)
ProgressBar: Add transition to determinate indicator. (53877)
Block Library
Blocks: Move bootstrapped block types to Redux state. (53807)
Router with region-based client-side navigation. (53733)
Bug Fixes
Add missing aria roles for block locking toolbar and menu buttons. (53734)
Block Editor: Fix cleanup in the ‘useNavModeExit’ hook. (53795)
Command Palette: Fix crash on block-related commands. (53923)
Date: Add relative time translations for moment.js. (53931)
Date: Update translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. domains for strings to be translatable. (53995)
getInsertionPoint: Fix type check for the state value. (53793)
npm Packages
Workflow: Run Learn directly from GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ action when publishing to npm targeting WP core. (53762)
Workflows: Fix issues with the npm publishing workflow when using locally. (53565)
Themes
Command Palette: Proper handling of page/post links in all themes. (53718)
Fix query loopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. bugs by correctly relying on the main query and removing problematic workaround. (49904)
Block Editor
Fix: Indicator style when block moving mode. (53972)
Icons
Fix invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. namespaces. (53955)
Patterns
Disable the preview option button when editing. (53913)
Global Styles
Gallery: Re-enable block spacing at block level while still hiding in global styles. (53900)
Layout
BlockList: Ensure element styles (and svg) are always appended at the end of the document. (53859)
Interactivity API
Add “supports.interactivity” to Image block. (53850)
Style Variations
Block Styles: Fix misplaced preview popover on RTL site. (53726)
List View
Recalculate window list when expanded state changes (fix logic for long nested lists). (53716)
Widgets Editor
Block WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.: Fix content cutoff in the keyboard shortcut modal. (53638)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Edit site: Add missing label to post status password protected input field. (52885)
[a11yAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)] Fix: Aria-haspop, aria-expanded attributes on the link format button. (53691)
Site Editor
Add missing aria roles to the ‘Create template part’ menu item. (53754)
Unify the delete button style in the dropdown menu with red. (52597)
Block Library
Add missing aria roles to the ‘Replace template part’ menu item. (53755)
Patterns
Add missing aria roles to the ‘Create pattern’ menu item. (53739)
List View
[a11y] Fix: Aria-haspop and aria-expanded attributes on list view button. (53693)
Block Editor
[a11y] Fix: Aria-haspop and aria-expanded attributes on the inserter button. (53692)
Performance
Revert “Switch performance tests to Playwright (#52022)”. (53741)
StartPageOptions: Load and parse patterns only after establishing the need for them. (53673)
Switch performance tests to Playwright: Take 2. (53768)
Adds explanatory text to view.js template. (53870)
Clarification for parent and ancestor hierarchical relationships. (53855)
Docs: Extend the information about using render with block.json. (53973)
Docs: Remove duplicate sections from FAQ page. (53830)
Document the naming convention for block-libraryPHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher functions. (53777)
Fix ‘lerna’ links in the release documentation. (53770)
Fix typo in code sample for Interactivity API. (53916)
Edit Site: Rename CanvasSpinner to CanvasLoader. (53728)
Enforce valid function names in the packages/block-library/src//.php files. (53438)
Fonts Library: Update properties name from snake case to camel case to match the rest of the properties. (53746)
Block API
Auto-inserting blocks: Remove obsolete TODO, fix REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. field description. (54208)
Post Editor
Editor: Fix the ‘useSelect’ warning in the ‘useIsDirty’ hook. (53759)
Fix browser console error when changing device preview mode. (53969)
Refactor latest content selectors in ‘CopyContentMenuItem’ components. (53676)
Update Jest to latest version, and use optimized JSDOM. (53736)
Plugin
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. themes is_block_theme collection param from core. (53846)
First time contributors
The following PRs were merged by first time contributors:
@JEverhart383: Fix typo in code sample for Interactivity API. (53916)
@krokodok: Make mid size parameter settable for Query Pagination block. (51216)
@mklute101: Update local instructions on the dev env documentation. (53924)
Contributors
The following contributors merged PRs in this release:
Many thanks to @jameskoster for the release assets, @annezazu and @priethorfor the general support and help collecting highlights, and @jeffikus for the copy check!
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This version is packed with enhancements and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, many focused on enriching the Command Palette and enabling further customization of blocks. It features contributions from 63 contributors across 219 pull requests, including five new contributors! 🥳
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg.
16.4 introduces some exciting new features, including both a new experimental feature and a new component, alongside many enhancements and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. Bug fix highlights include many improvements to the recently added Footnotes blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. and enhancements to Patterns.
This release consists of 184 pull requests authored by 60 contributors, including two new contributors! 🥳
Auto-Inserting Blocks (BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.)
Activating the new “Auto-inserting blocks” feature on the Gutenberg > Experiments page enables blocks to specify a location in which they will be automatically inserted. This applies both to the frontend and to the Site Editor (via the REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.), allowing for further user customization.
See an example in the video below of a “Like button” block that has been auto-inserted after each Comment Template block. You can also see how this block can be re-positioned using the existing block editor tools.
To try this new experimental feature, you can add an __experimentalAutoInsert field to the block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. file of a dynamic block of your liking. You have to specify the “anchor” block and the relative position (before, after, firstChild, or lastChild) for auto-insertion:
Note that the block will only be auto-inserted as long as the containing template or template part doesn’t have any modifications by the user. (This is by design, in order not to override a user’s choice to discard an auto-inserted block in the editor.)
This feature aims to improve the extensibility of block themes through plugins and continues to be actively developed.
For more details please see the tracking issue and the testing instructions in this PR. It would be great to hear your feedback! (#51449)
New Progress Bar Component
A new, horizontal ProgressBar component that can be used in various places. Whilst this new component has been merged with this release, it has not yet been applied in the Site Editor. It will likely replace the Spinner component that is currently used in the Site Editor loading experience. There is another PR for this work in #53032, aiming to introduce an indeterminate progress bar for the Site Editor, and further experimentation in #53399 to change it to a determinate progress bar. In the meantime, this component can be tested in Storybook. (#53030)
New Commands in the Command Palette
There are three new commands available in the command palette:
Show/hide block breadcrumbs
Enable/disable pre-publish checklist
Preview in a new tab
As well as expanding the functionality available in the new command palette, this effort starts to establish user experience patterns around commands, such as “show/hide” vs. “toggle”, and using snackbar notices more prominently. (#53073)
New Block Supports for Footnotes Block
The Footnotes block now includes support for updating the block’s link color, background color, and text color, as well as controls for typography, dimensions, and borders. The link and text color controls are expanded by default, as they will likely be used more frequently; the other new controls are collapsed by default. (#52897 & #53044)
Minimum Supported PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Version Bumped to 7.0
The Gutenberg pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party’s minimum PHP version has been bumped from 5.6 to 7.0, to maintain parity with WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. (#52982)
Link Control: Persist advanced settings toggle state to preferences if available. (52799)
Block Library
Behaviors: Extend Global Styles APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to read/write behaviors config. (52370)
Enhancements
Site Editor
Add context to the “Reset template” “Delete template” and “Edit template” commands. (52989)
Add xhuge breakpoint (1920px) and update pattern grid. (52942)
Display keyboard shortcut for command palette in site view. (52841)
Make sure only one Site updated notice displays at a time. (53087)
Template Descriptions: Tidy up all abbreviations of ‘example’ to be e.g. (52848)
Try adding further details to template part panel. (52476)
Update the ConfirmDialog that appears when applying a style revision over unsaved changes. (52972)
Update: Improve titles of author templates in query title block. (52732)
Post Editor
Add common commands (breadcrumbs, live preview, pre-publish checklist). (53073)
Use hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. instead of HoCs for:
Site editor: Conditionally render global styles revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. footer in sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (53204)
Block Editor
Remove duplicated display URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in LinkControl. (53167)
Synced Patterns
Remove extraneous “Detach” ToolbarButton for synced patterns. (53121)
Icons
Add keyboard icon and use in relative commands. (53083)
Plugin
Bump plugin minimum supported PHP version to 7.0. (52982)
Data Layer
Promisify action creator return type for WP data dispatch. (52530)
Bug Fixes
Block Library
AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name.: Fix global border styles generation. (53007)
Check if object exists before accessing its properties. (52870)
Image block: Fix image size at wide and full width. (53184)
Navigation Sidebar: Fetch the blocks from the content when trying to load navigations. (52899)
Navigation: Load the raw property on the navigation fallback. (52758)
Remove block tools back compatback compatBackward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers. component schedule for deprecated in 6.3. (53115)
Add id to pattern inserted notice to stop multiple notices stacking. (52746)
Allow orphaned template parts to appear in “general” categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (52961)
Correctly color code unsynced patterns titles in Site Editor. (52958)
Fix auto-size patterns triggering scrollbar flickering on certain size. (52921)
Fix color and behavior of unsynced patterns in block inserter when searching for reusable. (53205)
Fix editor crashing on certain search filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. combinations. (52956)
Fix empty general template parts in Patterns. (52747)
Patterns Browse Screen: Fix back button when switching between categories. (52964)
Reset current page when search filters change. (52933)
Site Editor: Fix site link accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) issues. (52744)
Site Editor: Use the correct icon for Patterns in sidebar card. (52931)
Post Editor
Allow styles to be changed dynamically through editor settings. (52767)
Distraction Free: Fix conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with showListViewByDefault preference. (52914)
Editor: Set default parameter for ‘__unstableSaveForPreview’. (53079)
Fix toolbar when previewing devices in post editor. (52770)
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Add missing Gettext wrapper on strings in Edit Post overview sidebar. (52971)
shimAttributeSource: Don’t run outside the registerBlockType filter. (53015)
Global Styles
Global styles revisions: Display text if no revisions are found. (52865)
Spacing presets: Fix bug with select control adding undefined preset values. (53005)
Style Engine: Switch off optimize by default. (53085)
Distraction Free Keyboard Shortcut: Fix notices in Site Editor. (52867)
Layout
Prevent the Dimensions UIUIUser interface from being displayed when the block does not support Dimensions. (53092)
List View
Ensure onBlockDrop does not fire if there is no target. (52959)
Template Editor
Site Editor: Don’t navigate to the patterns in Template Parts mode. (52884)
Navigation Menus
Navigation: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. Core changes for the navigation fallback. (52878)
REST API
Global styles revisions: Update private methods to protected. (52748)
Block API
Parser / Site Editor: Ensure autop is not run when freeform block is set to core/htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (52716)
Accessibility
Fix regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. with Edit site Navigate regions. (52940)
Update to work with consolidated a11yAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) labels. (52896)
Use the correct label to filter Mobile app PRs. (53024)
Patterns: Reinstate template parts mode spec. (52780)
Route to published post instead of homepage on navigation end-to-end tests. (52802)
Temporarily skip widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. import end-to-end test. (53226)
Update end-to-end tests that use code editor. (52788)
Props to @joen and @richtabor for the visual assets; @bernhard-reiter, @tyxla, @priethor, @mburridge, and @matveb for peer review; @bernhard-reiter, @youknowriad, and @dmsnell for helping get the release published to WordPress.orgWordPress.orgThe 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/; and @karmatosed and @siobhyb for riding along during the release process.
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
16.3 is largely a maintenance release. This means that lots of bugs have been fixed behind the scenes, though this release does see some enhancements to patterns in addition to plenty of other minor improvements. Read on to find out how working with patterns has been improved.
This release consists of 180 pull requests authored by 54 contributors, including three new contributors! 🎉
When editing template parts in the Site Editor the interface is in ‘focus mode’. However ‘focus mode’ was not previously available when working with patterns. This release enables ‘focus mode’ editing for patterns. (52427)
Sticky headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. bar on Patterns page
Previously on the Patterns page the header bar containing the search box scrolled out of view when you scrolled down the page. Other pages, such as the Templates page, did not have this problem and the header bar remained in view while scrolling the page. Gutenberg 16.3 fixes this and the header bar now remains firmly fixed to the top of the screen when you scroll the Patterns page. (52663)
Rename, duplicate, and delete patterns
Patterns now have a drop-down menu, accessed via the three dots, that allows you to rename, duplicate, and even delete patterns easily. Performing these operations has now been made much easier than it previously was.. (52270)
Changelog
Enhancements
Site Editor
Add delay and fade-in animation to loading spinner. (51902)
Make “My patterns” categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. permanently visible. (52531)
Remove “Theme patterns” heading in Pattern library. (52570)
Remove sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. group descriptions. (52453)
Show warning on removal of Post Template blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. in the site editor. (52666)
Update navigation menuNavigation MenuA theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. title size & weight in detail panels. (52477)
Sticky header and pagination on Patterns page. (52663)
Update manage pattern links to go to site editor if available. (52403)
Separate sync status into a filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. control. (52303)
Components
Adding support for defined IDs in TextControl component. (52028)
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Add filter to turn off Interactivity API for a block. (52579)
Add runtime support for the wp-style directive. (52645)
Block Library
Add back old Navigation and File blocks JavaScriptJavaScriptJavaScript 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/. implementation when Gutenberg is not installed. (52553)
Use next40pxDefaultSize on RangeControl components. (52257)
Block Editor
Add maxLength to LinkControl search item URLs. (52523)
Make the tab labels of ColorGradientSettingsDropdown component translatable. (52669)
Add support for arrays to setImmutably util. (52280)
Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)
NUX
Restore wordpress/nux to trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (52455)
Bug Fixes
Patterns
Alternative grid layout to improve keyboard accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility). (52357)
Add handling of sync status to the wp-adminadmin(and super admin) patterns list page. (52346)
Add missing decoding entities processing in Patterns and Template/Parts pages. (52449)
Add option to set sync status when adding from wp-admin patterns list. (52352)
Avoid copying global style presets via the styles compatibility hook. (52640)
Command Palette: Update label and icon for Patterns. (52742)
Ensure that the unsaved title is not persisted when reopening the modal. (52473)
Fix bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. with Create Patterns menu not showing in site editor page editing. (52671)
Fix renaming in Site View sidebar rename saves all edits for Template Parts and Navigation Menus. (52373)
Remove synced blocks from lastBlockInserted. (52558)
Rich Text/Footnotes: Fix getRichTextValues for useInnerBlocksProps.save. (52682)
Search block: Enqueue view script through block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (52552)
Use _get_block_template_file function and set $area variable. (52708)
Cover Block: Fix block deprecation when fixed background is enabled. (51612)
Image: Use the correct method for caption class in recent deprecation. (52853)
Accessibility
Change Delete page menu item to Move to trashTrashTrash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days.. (52641)
Change password input to type text so contents are visible. (52622)
Do not autofocus page title field in the ‘Draft a new page’ modal dialog. (52603)
Post Content link color should not be applied to placeholder component links. (52367)
Fix highlight change when using transform menu. (52752)
Fix: Apply text color selection to link color. (52379)
Components
Block Editor: Display variation icon in the ‘BlockDraggable’ component. (52502)
Copy tweak for the reusable block rename hint. (52581)
Fix reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-dropdown-menu version to avoid breaking change from one of …. (52356)
FormTokenField: Fix token overflow when moving cursor left or right. (52662)
Site Editor: Make sidebar back button go back instead of up if possible. (52456)
Top Toolbar: Move the preferences selection into the main useSelect. (52332)
Post Editor
Remove a block select button from the multi-entity saving flow. (52753)
Fix Site editor page when JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. support is disabled. (52376)
DimensionsPanel: Fix unexpected value decoding/encoding. (52661)
Global font sizes: Ensure sizes are unique. (52483)
Spacing Sizes: Fix zero size typo and to be output directly. (52711)
Themes
Fix admin_url() for preview link of block themes. (52399)
Fonts API
Deprecate and make Fonts API non-functional. (52485)
Fix font printing regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. when metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. exists. (52343)
Extensibility
Page Content Focus: Ignore page content within a Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block. (52351)
Performance
Post Editor
Fix performance regression for isEditedPostEmpty selector. (52759)
Patterns
Add client side pagination to patterns list. (52538)
Site Editor
Fix entity cache misses for single posts due to string as recordKey. (52338)
Block Library
Experimental: Disable TinyMCE compat with classic editor. (52325)
Experiments
Interactivity API
Prevent scripts from loading if behaviors are not used. (52140)
Fonts API
Font Face: To generate and print font-face styles for theme.json fonts. (51770)
Documentation
Document the new process for releasing point releases for old release branches. (49968)
Update layout architecture documentation after stabilisation. (52316)
Code Quality
Block Editor
Add missing @emotion/react dep to block-editor. (52475)
Lodash: Remove remaining _.get() from block editor and deprecate. (52561)
Make use of accessing private APIs from thunks directly. (52214)
Block Library
Footnotes: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. changes to excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. trim. (52709)
Navigation: Simplify the useSelect for useNavigationMenus. (51977)
Query Pagination: Set ‘clientId’ as useSelect dependency. (52358)
SiteHub: Combine site data selector hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (52567)
Core Data: Fix ESLint warning for ‘useEntityProp’ hook. (52757)
Tools
Testing
IframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.: Silence style compat warnings when in a BlockPreview. (52627)
GithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ workflow: Add a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher backport changes action. (52096)
First time contributors
The following PRs were merged by first time contributors:
@andrewhayward: Adding support for defined IDs in TextControl component. (52028)
@ghorivipul97: Post Content link color should not be applied to placeholder component links. (52367)
@sethrubenstein: Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)
Contributors
The following contributors merged PRs in this release:
Props to @jjameskoster for the visual assets, @greenshady for peer review, and @cbravobernal for helping to get the release published to WordPress.orgWordPress.orgThe 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/.