A Week in Core – July 17, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between July 10 and July 17, 2023.

  • 78 commits
  • 135 contributors
  • 61 tickets created
  • 12 tickets reopened
  • 70 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Add a missing closing `span> 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.) for column sorting indicators – #32170, #57839

Bootstrap/Load

  • Require wp-includes/compat.php in src/index.php#58206

Build/Test Tools

  • Remove outmoded jsvalidate task from Gruntfil – #58645, #26615
  • Prevent 404 errors in the E2E tests – #58777
  • Reset main query object after each test – #58776
  • Suppress E2E test suite 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/. notifications – #58779
  • Add tests to ensure the contribute Toolbar node is added when appropriate
  • Use assertSame() in Tests_Comment – #57855

Bundled Theme

  • fix height of featured images in Twenty Twenty Three – #58766
  • Twenty Seventeen: Use wp_register_script() to register HTML5 Shiv script – #56699
  • Twenty Twenty-Three: Add a border to Quote 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.#57506
  • Twenty Twenty-Three: Remove the perPage attribute where the query inherits from the global query. The global attribute should be used instead – #58581
  • Twenty Twenty-Three: Revert [55898]#58485

Code Modernization

  • Use str_contains() in a few more places – #58206

Coding Standards

  • Use single quotes for a string in Tests_Comment#57855
  • Use strict comparison for static strings in wp-admin/includes/class-wp-list-table.php#32170, #57839
  • Use strict comparison in wp-includes/class-wp-network.php#57839
  • Use strict comparison in wp-includes/class-wp-rewrite.php#57839
  • Use strict comparison in wp-includes/load.php#57839
  • Use strict comparison in wp-includes/rewrite.php#57839

Docs

  • Clarify where the wp_get_development_mode() value is retrieved from – #57487, #57840
  • Fix incorrect type for $crop param is various WP_Image_Editor classes and methods – #58271, #57840
  • Fix various incorrect @since mentions – #58834, #57840
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line commentsProps costdev, audrasjb – #58459
  • Use consistent wording for development mode – #57487, #57840
  • Various docblocks corrections – #57840

Editor

  • Add test for context setting in Comment Template block – #58839
  • Fix a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice appearing when adding a new template part – #57851
  • Fix 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. where it was not possible to style custom block elements in theme.json#57868
  • Fix layout of no-js state in site editor – #56228
  • Fix open_basedir warnings on the classic Edit Post screen when additional TinyMCE plugins are use – #54354
  • Lazily load Duotone settings only when needed – #58673
  • fix duotone filters in classic themes – #58734#46132
  • fix since annotation in rest blocks controller class – #58677
  • opt out of Navigation fallback – #58750
  • remove one preloaded navigation endpoint – #58749
  • trim footnote anchors from post excerpts – #58805
  • update npm packages with bug fixes and blessed tasks – #58745
  • update npm packages with first round of bug fixes for 6.3 RC1 – #58804
  • update npm packages with second round of bug fixes for 6.3 RC1 – #58804
  • update string incorrectly marked for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. in Chrome – #58716

External Libraries

  • Update deprecated jQuery code in Farbtastic lib – #57946

Filesystem 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.

  • Ensure wp_tempnam() does not produce file names longer than 255 characters as this is the limit on most filesystems – #35755

General

  • Escape nonce used for block theme activation – #58712
  • Introduce all development mode – #57487
  • Rename wp_in_development_mode() to wp_is_development_mode()#57487
  • add nonce for block theme preview activation – #58712
  • fix botched file move in r56199#58712

Help/About

  • Add a “Get Involved” tab to the About page – #23348
  • Adjust horizontal padding on the tabs under 960 pixels width – #23348
  • Fix closing contextual help when scrolled – #55342
  • Fix typo in [56171]: support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations. “topic”, not “ticket”
  • String changes in the Contribute screen – #23348
  • Update the About page for 6.3 – #58067
  • Update “Get Involved” tab content with the latest edits – #23348

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.

  • Improve the use of dashicons-external icon for external links – #47303
  • Move translator comments inside sprintf for tagline field description – #57675

Media

  • Fix adminadmin (and super admin) image editor layout at intermediary widths – #58692
  • Fix responsive views in image editor – #58692
  • Improve layout of image rotation options panel – #58756
  • Optimize images created in shortcodes – #58681
  • Set default state for image rotation button – #58800
  • Stop using and deprecate set_imagick_time_limit(). Seems it causes more problems than it solves – #58202

Menus

  • Fix critical errors when the page_on_front and/or page_for_posts options contain references to non-existing posts – #58345

Script Loader

  • Improve test coverage for wp_print_scripts()#58648

Toolbar

  • Make the ‘Edit site’ link open the editor with the current template – #58746

Upgrade/Install

  • Add correct parameters to add_option in upgrade_630 – #58821

Props

Thanks to the 135 (!) people who contributed to WordPress Core on Trac last week:

@costdev (24), @mukesh27 (13), @audrasjb (13), @sergeybiryukov (12), @ramonopoly (9), @poena (9), @sabernhardt (8), @spacedmonkey (8), @flixos90 (8), @swissspidy (8), @joemcgill (7), @peterwilsoncc (7), @oglekler (7), @afercia (6), @joedolson (6), @azaozz (5), @mrinal013 (4), @aristath (4), @desrosj (3), @wildworks (3), @westonruter (3), @mikinc860 (3), @davidbaumwald (3), @richtabor (3), @eidolonnight (3), @andrewserong (3), @jpantani (2), @nithi22 (2), @annezazu (2), @priethor (2), @tobifjellner (2), @marybaum (2), @dunhakdis (2), @vivekawsm (2), @robinwpdeveloper (2), @meher (2), @mikeschroder (2), @get_dave (2), @SeReedMedia (2), @antpb (2), @Presskopp (2), @ryelle (2), @nithins53 (2), @jameskoster (2), @alexstine (2), @ajlende (2), @scruffian (2), @isabel_brison (2), @jorbin (2), @mikachan (2), @nacin (1), @jeffmora (1), @bridgetwillard (1), @jenmylo (1), @boemedia (1), @davidmusnik (1), @lukecavanagh (1), @mehdi01 (1), @hugobaeta (1), @TacoVerdo (1), @joostdevalk (1), @johnbillion (1), @markoheijnen (1), @helen (1), @bacoords (1), @fierevere (1), @skorasaurus (1), @andraganescu (1), @dhrumilk (1), @zoonini (1), @akrocks (1), @nidhidhandhukiya (1), @syamraj24 (1), @jomonthomaslobo1 (1), @Toro_Unit (1), @eric.7186 (1), @thunderdw (1), @paaljoachim (1), @courane01 (1), @clubkert (1), @Shelob9 (1), @beckej (1), @abitofmind (1), @Mamaduka (1), @thekt12 (1), @antonvlasenko (1), @mohiuddinomran (1), @estelaris (1), @webcommsat (1), @cathibosco1 (1), @deepakvijayan (1), @mt_suzette (1), @Malae (1), @soulseekah (1), @matt_fw (1), @ekazda (1), @densityapps (1), @mtxz (1), @hberberoglu (1), @dsar (1), @onemaggie (1), @TobiasBg (1), @Rahmohn (1), @oandregal (1), @glendaviesnz (1), @gudmdharalds (1), @saxonafletcher (1), @joen (1), @markoserb (1), @cbringmann (1), @clarkeemily (1), @peterwilson (1), @youknowriad (1), @karmatosed (1), @MadtownLems (1), @brasofilo (1), @jeryj (1), @nazmul111 (1), @Chouby (1), @suzettefranck (1), @ugyensupport (1), @ibrahimmonir (1), @njsamsatli (1), @rembem (1), @mcsf (1), @josklever (1), @wplindavantol (1), @hbhalodia (1), @dansoschin (1), @Heiko_Mamerow (1), @piotrek (1), @mai21 (1), @studionashvegas (1), @mikecho (1), and @doems (1).

Congrats and welcome to our 23 (!!) new contributors of the week: @jeffmora, @davidmusnik, @mehdi01, @beckej, @mohiuddinomran, @mt_suzette, @matt_fw, @ekazda, @densityapps, @mtxz, @hberberoglu, @dsar, @gudmdharalds, @saxonafletcher, @nazmul111, @suzettefranck, @ibrahimmonir, @njsamsatli, @rembem, @wplindavantol, @Heiko_Mamerow, @mikecho ♥️

Core committers: @audrasjb (17), @sergeybiryukov (17), @isabel_brison (13), @joedolson (7), @azaozz (6), @joemcgill (5), @peterwilsoncc (5), @davidbaumwald (2), @spacedmonkey (2), @ryelle (1), @bernhard-reiter (1), @flixos90 (1), @kadamwhite (1), @jorbin (1), and @mikeschroder (1).

#6-3, #core, #week-in-core

What’s new in Gutenberg 16.1? (29 June)

What’s new in Gutenberg 16.1

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/ 16.1 is now available to download.

16.1 is loaded with exciting features, 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, 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) improvements and enhancements. Patterns, whose changes are synched across your site? Check. Automated footnotes for text blocks? You got it!

This release consists of 247 pull requests, authored by 72 contributors, including three new contributors. What’s more, many of 16.1’s highlights will be included in the upcoming WordPress 6.3 release.

Table of contents

  1. Your templates and patterns, your library
  2. Create your site without distraction
  3. Text blocks: now with footnotes
  4. Achieve more with the Site editor sidebar
  5. Worthy mentions
  6. Changelog
  7. Contributors

Your templates and patterns, your library

You can now create and sync design patterns across your entire site, and access them in the Pattern Library. (PR #51078)

“Reusable blocks” have been renamed to “Patterns”, and come with the option to synchronize. 

Changes you make to a synchronized pattern will update all instances of that pattern no matter where it appears on your site.  

Unsynchronized patterns, on the other hand, can be edited independently after being inserted. 

All your existing Reusable blocks, custom template parts, and patterns are displayed and are searchable in the Pattern Library. They’re also available in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. inserter.

Gutenberg Pattern Library

Create your site without distraction

Gutenberg 16.1 introducees a Distraction Free mode to the site editor; the same feature available for writing posts users love since Gutenberg 14.4 can now help you build your site, too. (PR #51173)

Once activated, this new mode removes all controls and menus, offering an environment for focused work while allowing you to edit a 1:1 preview of your site.

The Distraction Free setting is accessible via a keyboard shortcut Shift+Cmd+\ in Mac (Shift+Ctrl+\ in Windows) or in the top right options menu. “Calm, blue ocean” productivity is just a click away.

Text blocks: now with footnotes

Gone are the days of creating and constantly re-sorting dozens of anchor links. After a great deal of exploration and testing, automated footnote functionality comes to the Block Editor. (PR #51201)

Footnotes are available in text blocks including paragraph, heading and lists, and can be added from the block context menu.

The Footnotes block will remove and reorder your footnotes as you edit your text, which means less time managing links and lists and more time for writing.

Achieve more with the Site editor sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.

When viewing Home page templates, you’ll now see more template settings and configuration details in the sidebar. (PR #51223) Quickly access the home template’s headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., footer and other template areas and control blogblog (versus network, site) options such as posts per page and allowing comments.

Site editor sidebar showing home template settings

When browsing a template part that contains one or more navigation menus, for example the Header template part, you will see those menus displayed in the sidebar. From here you can conveniently view and edit all the menu items featured in that template part. (PR #51492)

Furthermore, in 16.1, live theme previewing in the Site editor (introduced in 15.8) has been moved from beyond the experimental curtain, and is available for installed blocks themes under Appearance > Themes. (PR #50983)

Worthy mentions

Take control over the dimensions of Image blocks with new aspect-ratio tools. (PR #51545)

The Link Control UIUI User interface has also seen a major revamp in this release, streamlining the editing process further. (PR #50890)

#51831 makes it easier to shuffle your Button blocks to and fro and up and down by providing direction-based arrows in the context toolbar.

Changelog

Features

  • Add focus mode for Navigation Menus. (39286)
  • Allow renaming, duplication and deleting of Navigation menus from Browse Mode Sidebar. (50880)

Block Library

  • Add Navigation Menus to Template Parts screen sidebar in Browse Mode. (51492)
  • Add Footnotes block to text blocks. (51201)

Patterns

  • Allow for filtering of block patterns by source. (51672)
  • Reusable blocks: Rename to ‘Patterns’ and add option to also add a non-synced Pattern. (51144)
  • Site Editor: Add Library for Template Parts & Patterns Management. (51078)

Themes

  • Remove the experiment option for Block Theme Previews. (50983)

Site Editor

  • Add distraction free to site editor (51173)

Enhancements

Site Editor

  • Edit Site: Make adminadmin (and super admin) background consistent with layout. (51741)
  • Edit Site: Remove first loading spinner. (51736)
  • Edit Site: Use global background color while loading. (51709)
  • Improve guidance to editing template when focused on editing a page. (51366)
  • Only show view site link in view mode. (51279)
  • Page Details View: Show featured imageFeatured image A 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. only if there is one. (51649)
  • Page Details View: Show parent only if there is one. (51648)
  • Site editor sidebar: Home template details. (51223)
  • Navigation on Browse Mode: Move the action to the leaf menu. (50843)
  • Remove 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. as an option in the add template flow. (51586)
  • Remove shadows in Site Editor sidebar. (51546)
  • Show warning on critical block removal. (51145)
  • Site editor navigation: Use chevron left in RTL mode. (51588)
  • Add ability to set status, publish date and password in site editor. (51408)
  • Add table view to manage templates page. (50766)
  • Update Library panel footer. (51652)
  • Update page list footer. (51438)
  • List draft navigations in Browse mode Navigation section. (51422)
  • Show actions for empty menus in Navigation on Browse mode. (51420)
  • Unify welcome guides labels casing. (51700)
  • Site editor sidebar: Add footer to template part and ensure nested template areas display. (51669)
  • Update colors in ‘Site view’. (51856)
  • Site Editor: Make string to add Template parts and Patterns consistent and translatable 51743

Components

  • ItemGroup: Update button focus styles to be more consistent. (51576)
  • Toolbar: Use Ariakit instead of Reakit. (51623)
  • Update: Adjust modal radius to be between frame and buttons. (51254)
  • UnitControl: Revamp support for changing unit by typing. (39303)
  • Move HeadinglevelDropdown to its own component. (46003)
  • Button: Introduce size prop (51842)

Block Editor

  • List View: Try showing blocks that are dragged (no longer hide them). (51724)
  • Updated unstyled Button hover selector to change fill of svg and path element. (50819)
  • Writing Flow: Allow Escape key to deselect blocks and selection during multiselection. (48904)
  • Change “Copy block” to “Copy”. (51532)
  • Limit Copy/Paste Styles menu item. (51503)
  • Force disable suggestions until URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org field is dirty in Link Control. (51354)
  • Top toolbar: Refine the icons on the right. (51735)
  • Improve LinkControl Edit UI. (51712)

Block Library

  • List block: Add numbering type selection. (51186)
  • Patterns: Removes the pattern experiment. (51719)
  • Remove accordion from details block keywords. (51597)
  • Add init modules to details and post-time-to-read blocks. (51606)
  • Improve logic in render_block_core_template_part. (50636)
  • Indicate Draft status of menus in Nav block menu selector. (51427)
  • Mobile – Image block – Fix issue with set width and height images. (51463)
  • Navigation: Remove destructive colors from modal. (51691)
  • Pass the block to the onGoToPage function. (51699)
  • Post Author – don’t show 0 in inspector controls. (51345)
  • Remove anchor support from dynamic blocks. (51288)
  • Site Tagline Block: Remove unnecessary square path from block icon SVG. (51611)
  • Add image block aspect ratio control (51545)
  • Updating social link attributes (51997)

Accessibility

  • Autocomplete: Announce results to screen readers when first becoming visible. (51018)
  • List View: A11YAccessibility 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) focus enhancements for edit-site based on modifications to edit-post. (51404)
  • Add a description key to 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. style variations. (45242)
  • Focus first focusable on Link UI. (51105)
  • BlockLockModal: restore focus on fallback toolbar button when original button is not rendered (51666)
  • Site Editor Sidebar: improvements to buttons (51762)

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.

  • Add missing tests for the Image block. (51305)
  • Image block: Add animation toggle to lightbox behavior. (51357)

Global Styles

  • Accept transforms in gutenberg_get_global_styles context params. (50484)
  • Split styles menus in 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. and everything else. (51318)

Icons

  • Tweak icons for improved HiDPI devices. (51511)

Templates API

  • Return post modified datetime in response. (51362)

List View

  • Style Book: Close list view when opening the style book. (50438)

Design Tools

  • List View: Add an indicator of when a position type is set for a block. (49122)
  • Sticky Position: Try re-enabling non-root sticky position. (49321)
  • Clarify error message if duotone color values is incorrect. (51397)
  • List all the font families and font sizes from all the theme.json origins in the font picker. (51488)

Post Editor

  • Adjust the name of the custom fieldCustom Field Custom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributors’ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes. button labels. (47407)
  • Block manager: Display a ‘Reset’ button when blocks are hidden to quickly enable all. (51200)

Media

  • Prepublish: Suggest uploading external images. (46014)

Patterns

  • Block Options: Use consistent capitalization on template parts and patterns. (51761)

CSSCSS Cascading Style Sheets. & Styling

  • Update editor UI modal width. (51733)

Commands

  • Add commands to access template, template parts and styles. (51501)
  • Add global styles related commands. (51637)

Themes

  • Block Theme Previews: Change the URL query string for more safety. (51312)
  • Update the Save Button label when you’re previewing a theme. (51361)
  • Ensure there is always a Navigation available in the browse mode sidebar via fallback algorithm 50321

Bug Fixes

Block Library

  • Fix navigation error in library. (51589)
  • Fix site editor rendering of Categories block. (51329)
  • Gallery block – Add default value for innerBlockImages. (51443)
  • Latest posts: Make more link consistent between frontend and editor. (51190)
  • Navigation: Don’t interfere with pointer events. (51378)
  • Post editor: Make the Post Content block available as a child of the Query block. (51405)
  • Search Block: Fix problem with buttons not outputting primary status. (51529)
  • Try providing a non-zero value for client width in image editor. (51285)
  • Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Properly initialize and update perPage when we inherit from global query. (51641)
  • AvatarAvatar An 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. block: Fix not 1:1 between the editor and the front-end. (49963)
  • Spacer block: Fix invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. markup when set to fill. (51317)
  • Buttons Block: add support for orientation-based block movers (51831)
  • Rename navigation fallback classes from WP_ to Gutenberg_ (51959)

Commands

  • Show pages with any status in the command center. (51324)
  • Add manage all custom patterns command (51845)
  • Add another batch of commands to the site editor (51832)
  • Add UI commands to the post editor (51900)
  • Add preferences and keyboard shortcuts commands (51862)

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

  • Core Data: Fix ESLint warning for the ‘useEntityRecord’ hook. (51562)
  • useEntityRecord: Fix destructure error when enabled option is false. (51534)

Block Editor

  • Fix blocks autocompleter ‘rootClientId’ selector. (51673)
  • Inserter: Fix arrows in RTL mode. (51622)
  • Link Format: Don’t return focus on the selected text ‘onFocusOutside’. (51684)
  • ListView: Update drop indicator line positioning to support rtl languages. (51284)
  • Page Content Focus: Default insertion point to the Post Content block. (51773)

Site Editor

  • Add ‘Edit template’ and ‘Back to page’ commands. (51364)
  • Fix template display in page details with a custom template. (51638)
  • Page details: Fix displaying slugs with non-latin characters. (51679)
  • Prevent block overlay on blocks with a ‘contentOnly’ editing mode. (51780)
  • Fix gradient background color repeats. (51374)
  • Global styles: Fix back button tooltip. (51725)
  • Site editor header: Fix document title back and shortcut color contrast. (51442)
  • Site editor sidebar: Fix the heading hierarchy. (51696)
  • Disable the revision button if there is no clickable menu 51851
  • Library: Fix misalignment of description in custom template parts 51868
  • Library: Fix delete shortcut incorrectly bound to non-user patterns 51830
  • Fix toolbar overlap in site editor 51810
  • Increase space between page 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. and details section 51858
  • Fix missing MenuGroup segment in Site Editor header more menu 51860
  • Update the add template modal design 51806
  • Update text color of site editor menu item hover/active states 51847
  • Fix library command path 51837
  • Restore sidebar in focus mode on Pattern click through in Browse Mode Library 51897

Accessibility

  • Distraction Free: Avoid focus loss when enabling/disabling distraction free mode via the more menu. (51627)
  • Library: Add an explicit label to the search control. (51781)
  • Site editor: Add a navigable region for content area of Library and Template views. (51782)
  • Fix shift+tab behavior to move to toolbar when the preceding block has a form element. (51548)

Global Styles

  • Color Panel: Fix rendering of tabs with no color. (51498)
  • Remove custom padding on style revisions button. (51269)

Components

  • MediaPlaceholder: Fix position of URLPopover. (51363)
  • Popover: Allow legitimate 0 positions to update popover position. (51320)
  • Button: Remove unnecessary margin from dashicon. (51395)
  • Keep framer-motion from updating minor version 51894
  • ConfirmDialog: Fix affirmative action being triggered an extra time when selecting a button via keyboard 51730
  • Tweak more icons for high-resolution devices 51768
  • ZStack: fix component bounding box to match children 51836

Patterns

  • Library: Reinstate sidebar navigation menu editing for template parts. (51825)

Interactivity API

  • Image block: Remove Lightbox markup if it is set as disabled. (51692)

Block Locking

  • Fix regressionregression A 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. in selectors. (51541)

Typography

  • Fluid typography: Custom font-sizes should use max viewport width. (51516)

Widgets Editor

  • Fix fixed toolbar in customize widgets. (51092)
  • Hide the hidden navigation block. (50662)

Block Variations

  • [Block Library – Post Terms]: Custom taxonomies do not show icons when transforming from the toolbar. (51476)

Page Content Focus

  • Switch to Page panel when deselecting a block 51881
  • Don’t show ‘Back to page’ notification when navigating away from page 51880
  • useBlockSync(): Reset inner blocks when component unmounts 51783
  • Fix black pixel appearing when block toolbar is empty 51779
  • Only show Page Content Focus commands when in edit mode 51888

Performance

Site Editor

  • Edit Site: Add a loading timeout. (51049)
  • Improve DocumentActions performance. (51432)
  • Prevent BlockBreadcrumb from re-rendering unnecessarily when typing. (51628)
  • Reduce number of List View re-renders while typing. (51518)
  • Improve PagePanels performance. (51319)

Block Editor

  • Improve getBlockEditingMode() and useAppender() performance. (51675)

Experiments

Global Styles

  • Color Randomizer: Fix an error when the theme has no color palette. (51539)

Documentation

  • Docs: Fix incorrect import of useEntityRecords in code example. (51630)
  • Fix broken links in editor documentation. (51321)
  • Fix grammar in the Create a Block > WordPress 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 page. (51663)
  • Fix grammar on the Create a Block tutorial page. (51662)
  • Fix grammar on the Getting Started page. (51661)
  • Update broken link. (41758)
  • Update components README.md. (51557)
  • Update wp-env changelog. (51614)
  • Updated getEntityRecord doc by using selector instead of dispatch. (51298)

Code Quality

General

  • Adopt lock-unlock.js and private-apis.js convention. (51322)
  • Formats: Avoid rerendering language edit component when typing. (51440)
  • Keyboard Shortcut: Clean up shortcut names. (51739)
  • Lodash: Refactor away from _.kebabCase() in block editor. (51687)
  • Lodash: Refactor away from _.mergeWith(). (51483)
  • Lodash: Remove from blocks package. (51703)
  • Remove pattern directory categories endpoint. (51340)
  • Require relocated class files for back-compat in WordPress releases. (51670)

Block Library

  • Add tests for WP_Classic_To_Block_Menu_Converter class. (51410)
  • Details: Set ‘clientId’ as useSelect dependency. (51634)
  • Move Navigation fallback files to 6.3 directory. (51572)
  • Navigation: Fix ListView deprecation notice. (51094)
  • Navigation: Just a simple refactor. (51382)
  • Remove legacy isTopLevelLink attribute from Navigation block tests. (51759)
  • Search Block: Write “Button Only” label in sentence capitalization. (51629)

Site Editor

  • Browse Mode: Move CSS to more generic selector. (51547)
  • DRY up ContentBlocksList and BlockInspectorLockedBlocks. (51281)
  • Edit Site: Refactor the NavigationMenuContent component and fix the deprecation notice. (51469)
  • PageContent: Fix unlock import. (51360)
  • Refactor Site Editor block editor code. (51524)

Block Editor

  • Lodash: Replace _.mergeWith() with deepmerge in blocks. (50637)
  • useInsertionPoint: Add missing dependency for useCallback. (51682)
  • Block Editor: Improve data selector for BlockQuickNavigationItem. (51429)
  • Block Editor: Remove redundant memoization from ‘ImageURLInputUI’. (51658)
  • Block Editor: Simplify filtering condition for getBlockParentsByBlockName selector. (51439)
  • Block Editor: Remove unused selectors. (51674)
  • Extract nav editor component in Nav in Browse mode. (51436)
  • Remove custom button and (conditionally) show single menu on Navigation route in Browse Mode. (51565)

Design Tools

  • Fluid typography: Add missing changelog from #51516. (51668)

Layout

  • Move layout definitions out of theme.json. (50621)
  • Try stabilising layout and its associated APIs. (51434)

Global Styles

  • Global styles revisions: Move from experimental to 6.3. (51474)

Post Editor

  • Fix refactor flat term selector to use data api for creating new terms. (50952)

Data Layer

  • Private actions and selectors: Return stable references, expose to thunks. (51051)

Themes

  • Block Theme Previews: Rename GET variable and prepare for core compat. (51738)

Interactivity API

  • Remove the hydration console log of the Interactivity API. (51571)
  • Use interactivity API for Navigation and File blocks only in Gutenberg. (51694)
  • Behaviors: Move behaviors code to experimental folder. (51654)

Components

  • Convert ClipboardButton to TypeScript. (51334)
  • Use internal context system to apply toolbar variant to toolbar dropdowns. (51154)

Parser

  • Split each class in parser.php to a separate file. (48693)

Tools

Testing

  • Add ‘Mamaduka’ as one of the code owners for Playwright tests. (51470)
  • Combine Site Editor list view tests into a single file. (51635)
  • Consolidate duplicate block tests. (51352)
  • Fix flaky ‘Keep styles on block transforms’ end-to-end test. (51593)
  • Fix flaky ‘Push to Global Styles’ end-to-end test. (51636)
  • Fix flaky ‘Switch to Draft’ action in preview end-to-end tests. (51564)
  • Fix flaky ‘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. API’ end-to-end test. (51592)
  • Fix flaky Image block interactivity end-to-end test. (51573)
  • Fix the flaky site editor list view tests. (51598)
  • Migrate ‘Allowed Blocks Setting on InnerBlocks’ tests to Playwright. (51677)
  • Migrate block hierarchy navigation tests to Playwright. (51517)
  • Playwright Utils: Change preference update method in setIsFixedToolbar. (51659)
  • Playwright Utils: Simplify editor preference updates in createNewPost. (51560)
  • Styles Navigation Screen: Close style book using location. (51365)
  • Update BlockEditorProvider tests. (51497)
  • Update E2E test sharding on CI, make Playwright tests faster, Puppeteer tests slower. (50362)
  • Update the ‘Iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. block’ test and fix flakiness. (51631)
  • end-to-end tests: Try fixing ‘networkidle’ timeout errors. (51826)
  • test: Re-enable native integration tests. (51706)
  • Migrate Navigable toolbar test to Playwright. (51514)
  • Mobile unit tests: Remove custom waitFor implementation. (46735)
  • Set fixedToolbar to false after each top toolbar test to ensure proper cleanup. (51600)
  • Fix performance test failure on trunktrunk A 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.. (51407)
  • Performance tests: Make theme versions consistent cross-env. (50905)
  • Performance tests: Update base point to compare. (51381)

Build Tooling

  • Babel config: Enable useSpread option for JSX transform to reduce transpilation. (51574)
  • Lodash: Remove from lint staged type check. (51698)
  • Performance Tests: Update the base point to compare against. (51689)
  • wp-env: Try to fix failing PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 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/ actions. (51513)
  • npm lockfile: Hoist reakit and date-fns packages to the top. (51500)

Plugin

  • Add script to compile usage of experimental APIs. (51341)
  • Remove Details block setting field from the experiments page. (51372)

Contributors

First time contributors merged the following PRs for 16.1 🎉:

The following contributors also merged PRs in this release:

@aaronrobertshaw @afercia @alexstine @andrewserong @aristath @artemiomorales @aurooba @bangank36 @c4rl0sbr4v0 @carolinan @ciampo @dcalhoun @derekblank @diegohaz @draganescu @ellatrix @fabiankaegy @fluiddot @geriux @getdave @glendaviesnz @jameskoster @jasmussen @jeryj @jhnstn @jsnajdr @juanfra @kozer @luisherranz @MaggieCabrera @Mamaduka @matiasbenedetto @mcliwanow @mcsf @mikachan @n2erjo00 @noahtallen @noisysocks @ntsekouras @oandregal @okmttdhr @paulopmt1 @pbking @peterwilsoncc @pooja-muchandikar @ramonjd @richtabor @samnajian @SantosGuillamot @SavPhill @SaxonF @scruffian @shimotmk @Sidsector9 @SiobhyB @spacedmonkey @stokesman @sunyatasattva @t-hamano @talldan @tellthemachines @tyxla @walbo @WunderBart @xerpa43 @youknowriad @priethor @ajlende @mirka

Mega props to @jameskoster and @joen for the visual assets, @priethor for peer review, and @isabel_brison for helping get the release published to 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/.

Thank you to everyone who was involved. And to those reading this post 😀


Reminder: “What’s new in Gutenberg…” posts (labeled with the #gutenberg-new 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.)) are posted after every Gutenberg release. Learn more about how to keep up to date with news about Gutenberg and the Site Editor project (formerly called Full Site Editing).

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

What’s new in Gutenberg 16.0? (14 June)

“What’s new 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/…” 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).


Gutenberg 16.0 has been released and is available for download!

With WordPress 6.3 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. 1 just around the corner, Gutenberg 16.0 gives us a sneak peek at the features that will soon be available in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. WordPress. This latest release brings significant enhancements to the Site Editor, introduces a newly stabilized 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., refines dimension controls, and includes many quality-of-life improvements 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. In total, there are 164 pull requests authored by 54 contributors, including four new contributors!

Table of contents

Page management comes to the Site Editor


Gutenberg 16.0 introduces big changes to the Site Editor, including the ability to create new pages (50565) and view page details in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. (50767). This means you can practically build out a website without leaving the Site Editor, which speeds up the site creation process, makes it easier to see what the final result will look like, and reduces the overall cognitive load of switching between editors.

One of the challenges of editing page content within the Site Editor is that it can be difficult to know what is actually being edited. To address this, Gutenberg 16.0 adds the ability to focus on either the page’s content or the page’s template (50857). See the video demonstration below.

Refined dimension controls and Post Template gets block spacing


Block spacing and layout controls have been added to the Post Template block, which is part of the Query block, making it possible to control the space between posts from within the Editor (49050). This is a major improvement for theme authors, who have previously had to resort to custom CSSCSS Cascading Style Sheets..

Dimension controls have also been redesigned to optimize and condense unlinked controls (50660). This makes it easier to apply margin and padding while taking up less vertical space in the block settings sidebar.

The Details block is now stable


The Details block was introduced in Gutenberg 15.6 as an experiment. After community testing and feedback, the block was scaled back and stabilized into what is now available in 16.0 (50997). This block uses <details> and <summary> HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. elements to hide content until the reader is ready to view it. You can also configure the content to be visible by default.

Other Notable Highlights

In Gutenberg 15.9, the experimental flag was removed from the Command Center, and now in 16.0 its 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. is public (51169). This will allow extenders to begin experimenting with custom commands.

The color palette component has been improved for better readability (50450). The name and value no longer overlay the swatch. And icon-only labels are now possible in the Query Pagination block (50779).

There have also been improvements to drag-and-drop in the List View. It is now much easier to position blocks at the top and bottom of the list (#50726). Furthermore, when blocks are dragged into a container, such as a Group block, they are now added to the bottom of the container as opposed to the top (#50936).

Changelog

Enhancements

Block Editor

  • Block Controls SlotFill: Refactor to allow passing multiple contexts, including internal components context. (51264)
  • Block Toolbar: Update the ‘Unlock’ button label. (51083)
  • Iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. Editor if all blocks are v3. (48286)
  • Improve (and relax) search vs direct URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org entry detection in Link Control. (51011)
  • Link Control require user to manually submit any changes. (50668)
  • List View: Allow dragging outside the immediate area by passing down a dropZoneElement. (50726)
  • List View: Append when dragging into collapsed blocks. (50936)
  • Reinstate Text control outside of settings in Link Control. (50957)
  • Update the document title in the template mode of the post editor. (50864)
  • Use “Save” instead of “Apply” in Link Control. (50964)
  • Use checkbox for Open in new tab within Link Control. (50961)
  • Visually hide the LinkControl initial/results heading. (50977)

Site Editor

  • Add delete action for pages in navigation sidebar. (51101)
  • Add page details to the Site Editor sidebar. (50767)
  • Add Paragraph prompt to Post Content when empty. (50623)
  • Add template actions in site editor navigation sidebar. (51054)
  • Add the ability to create a new page in the Site Editor. (50565)
  • Add the ability to focus on editing a page’s content vs the page’s template. (50857)
  • Directly save if only changing current context. (50567)
  • Disable block supports derived design tools when Blocking Editing Mode is not default. (50912)
  • DocumentActions: Animate between page and template mode. (51224)
  • Site Editor sidebar: Refactor page details. (51093)
  • Styles Screen: Add link to global styles 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.. (51149)
  • Try adding dynamic page templates to pages section. (50630)
  • Tweak edit site resizable frame handle. (50878)
  • Update the bottom sticky section in the site editor details panel. (51274)

Block Library

  • Details Block: Remove experimental flag and stabilize. (50997)
  • Post ExcerptExcerpt An 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.: Improve preview on the editor site. (50167)
  • Post Title: Improve preview on the editor site. (50147)
  • Query Pagination: Address feedback from #50779. (51165)
  • Query Pagination: Allow hiding the label text. (50779)
  • Search Block: Add button only with expandable input. (50487)
  • Search block: Refactor to use HTML Tag Processor. (51273)
  • Post Link: Update block variation icon to match the one used in the Link UIUI User interface results. (50190)
  • Post Template: Add block spacing and layout. (49050)

Components

  • Button: Add opt-in prop for larger isSmall size. (51012)
  • ListView: Converted additional content render into a component. (51163)
  • ColorPalette: Improve color name readability. (50450)
  • Spacing: Optimize and condense unlinked spacing controls. (50660)

Data Layer

  • Merge selector-binding code (except resolvers) into a new bindSelector function. (51176)
  • Move action-binding code to a bindAction function. (51161)

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)

  • Add TabPanel to document overview replacing fake tabs. (50199)
  • BorderControl: Improve color code readability in aria-label. (51197)
  • Handle isDraft or isInvalid Enter keypress via onKeyDown instead of a Keyboard Shortcut. (51021)
  • ListView: Allow deleting blocks using keyboard. (50422)
  • Site Editor: Add view site link to site editor nav. (50420)
  • Use generic div instead of nav for the SidebarNavigationScreen component. (51111)

New APIs

  • Command Center: Marks the selectors and actions of the commands store as a public API. (51169)

Bug Fixes

Block Editor

  • Add inert attribute to disabled blocks that have only disabled descendants. (51079)
  • Fix multi-entity multi-property undo redo. (50911)
  • Hide the save draft button for published posts. (51193)
  • Iframe enqueuing: Add editorStyle and warning. (50091)
  • Improvements to how blocks with a ‘disabled’ editing mode behave. (51148)
  • Link Control: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization.. (51081)
  • Make sure post content always has correct layout. (51431)
  • Navigation: Memoize link value passed to the LinkControl. (51155)

Site Editor

  • Browse Mode: Remove horizontal scrollbar during screen transitions. (51189)
  • Fix styling of actions in site editor navigation sidebar. (51153)
  • Properly decode new template title in snackbar. (51057)
  • Site Editor: Update untitled copy and rendering. (51074)

Widgets Editor

  • Update the settings icon in Widgets Editor. (51029)

Block Library

  • Freeform/ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.: Prevent blocks from converting HTML entities. (51123)
  • Navigation: Apply color classes to the navigation container element. (50968)
  • Post Template: Set block context via 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.. (50313)
  • Post Template: Output number of columns as classname for backwards compatibility. (51358)
  • Post Title: Fix autofocus when iframed. (5133151367)
  • Query: Fix deprecation error when migrating layout. (51311)
  • Term Description: Handle default margin styles. (51137)

Global Styles

  • DimensionsPanel: Fix site editor error on Columns block level screen. (51252)
  • Fluid typography: Ensure max viewport width is used in the editor. (51146)
  • Global styles revisions: Ensure redirect runs once for back button. (51316)
  • SpacingSizesControl: Fix problem with the slider position being reset when saving global styles. (50956)
  • Styles Screen: Ensure variations previews will render in mobile viewports. (51080)

Components

  • Fix: Can’t type space if RichText component is inside button/summary in Firefox. (50540)
  • FontSizePicker: Fix control headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. spacing. (50855)

Themes

  • Avoid changing non-theme-preview requests. (51221)

Data Layer

  • Data: Fix a bug where private selectors on a store with resolvers are inaccessible. (51166)

Accessibility

  • Add aria labels to the focal point picker component. (50993)
  • Block Toolbar: Fix text only label for locked blocks. (50944)
  • Fix Navigable Toolbar initialIndex. (51181)
  • Fix screen readers not announcing updated aria-describedby in Firefox. (51035)
  • Link Control: Fix the ‘Save’ button’s disabled state. (51117)
  • Social Icons: Manually set Snapchat label color. (51237)

Performance

  • Make getBlockEditingMode() return ‘default’ when parent is ‘contentOnly’. (51185)
  • Use static closures when not using $this. (50723)
  • Add removeAllNotices action to allow all notices to be removed from a given context. (44059)
  • Add a new action removeNotices which allows bulk removal of notices. (39940)

Experiments

Interactivity API

  • Change label and description for the gutenberg-interactivity-api-core-blocks experiments setting. (51059)
  • Disable Lightbox UI if link has an image. (51180)
  • Experiment: Put directives on element and insert lightbox as its child. (51089)
  • Image Lightbox: Add a reset button. (51239)
  • Image Lightbox: Add support for external urls in the lightbox. (51278)
  • Image Lightbox: Fix design of close button for the lightbox (correct PR). (51206)
  • Image Lightbox: Improve image block lightbox escaping. (51061)
  • Move the directives and markup needed for the lightbox to block supports. (51232)
  • Navigation block: Set correct aria-expanded on hover. (50953)
  • Remove experimental flag from navigation and file blocks to use the Interactivity API (as private). (51266)
  • Rename directives suffix character and island directive in the Interactivity API. (51152)
  • Remove not needed aria-hidden attribute in navigation block experiment. (51044)

DropdownMenu v2

  • Change default placement to match the legacy DropdownMenu component. (51133)
  • Render in the default Popover.Slot. (51046)
  • Style tweaks. (50967)
  • Tweak styles, add toolbar-specific styles. (51097)

Documentation

  • Add documentation about the entities abstraction and the undo/redo stack. (51052)
  • Fix code example error in the Curating the Editor doc. (51070)
  • Fix formatting and use sentence case for titles in Scripts doc. (51069)
  • Fix headings in the View component readme. (51157)
  • Fix text in readme. (51268)
  • Remove Block Grammar doc and all corresponding internal links. (51106)
  • Remove Roadmap doc. (51062)
  • Undo/Redo: Minor edits. (51085)
  • Update README.md on SlotFills to add info + example about the prop fillProps. (51013)
  • Update ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. documentation link for propTypes. (51208)

Code Quality

  • Extract BlockThemePreviews-related code from the editor package. (50863)
  • Fluid typography: Extract logic to derive fluid typography settings. (51188)
  • Fonts API: Refactor 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. global functions into WP_Fonts_Resolver. (50811)
  • Iframe: Clarify how dependencies related to inline styles work. (51199)
  • Iframe: Fix blob cleanup. (51004)
  • Iframe: Remove obsolete readyState checks. (51003)
  • Iframe: Remove obsolete styles HTML parsing. (51136)
  • Lodash: Remove _.isEmpty(). (5109650974510985091751168)
  • mapSelectorsWithResolvers: Don’t init hasResolver, mapSelectors already did it. (51160)
  • mapValues: Use fromEntries, avoid re-creating object in each reducer call. (51159)
  • Refactor code that adds resolver fulfillment to selector calls. (51009)
  • Remove legacy logic for __unstableResolvedAssets. (51100)
  • Remove outdated Babel spread optimization from selectors. (50987)
  • Remove the insert.ref field from insertUsage data. (51130)
  • Rename ‘page content lock’ to ‘page content focus’. (51280)
  • Separate template screens in the Site Editor. (51040)
  • Writing flow: Fix tab into iframe. (50955)

Block Editor

  • Refactor Link Control Settings Drawer to avoid unnecessary prop drilling. (50963)
  • ListView: Remove unused ‘useSelect’ dependency. (51134)

Components

  • BlockDraggable: Use the getBlockType selector. (51174)
  • PreferenceToggleMenuItem: Add missing useSelect dependency. (51158)

Tools

wp-env

  • Fixed Docker Image Size Ballooning. (51034)
  • Preferentially Execute Local wp-env. (50980)

Scripts

  • Scripts: Optimize updating render paths when developing blocks. (51162)
  • Fix: Build render.php when webpack watch in progress. (50939)

Testing

  • Add tests to useIsDirty. (51036)
  • Button: Add basic visual regressionregression A 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. tests. (51000)
  • Comment Template Block: Add test coverage for context setting. (50879)
  • Comment Template Block: Retain inner blocks inserted via render_block_data filter. (50883)
  • Fix flaky Behaviors UI end-to-end tests. (50954)
  • Ignore framer-motion warning when running end-to-end tests locally. (50938)
  • Link Control test migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.: Should contain a label when it should open in a new tab. (51001)
  • Link control: Migrate tests to Playwright. Can be created by selecting text and using keyboard shortcuts. (50996)
  • End-to-end tests: Add an assertion to confirm that the URL changed. (50835)

Build Tooling

  • babel-preset-default: Enable the bugfixes option for preset-env. (50994)

First time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @alexstine @andrewserong @anton-vlasenko @artemiomorales @benlk @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @derekblank @ellatrix @fluiddot @geriux @getdave @gigitux @glendaviesnz @gziolo @jameskoster @jeryj @jffng @jsnajdr @juanfra @kevin940726 @luisherranz @MaggieCabrera @Mamaduka @mcsf @michalczaplinski @mikachan @mirka @ndiego @noisysocks @ntsekouras @oandregal @ObliviousHarmony @ockham @okmttdhr @opr @ramonjd @richtabor @rmorse @SantosGuillamot @SaxonF @scruffian @SiobhyB @t-hamano @Takshil-Kunadia @tellthemachines @tyxla @wayheming @westonruter @youknowriad

Props to @joen for the visual assets, @bph for peer review, and @bernhard-reiter for helping get the release published to 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/.

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

A Week in Core – May 22, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between May 8 and May 22, 2023 (sorry for not being able to publish a post last week, this one will cover two weeks!).

  • 48 commits
  • 87 contributors
  • 108 tickets created
  • 10 tickets reopened
  • 79 tickets closed

Also, WordPress 6.2.1 and 6.2.2 maintenance and security releases went out!

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Add missing escaping for CSSCSS Cascading Style Sheets. classes on the body 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.) in the adminadmin (and super admin)#58336

Build/Test Tools

  • Call wp_cache_flush_runtime in WP_UnitTestCase. – #31463
  • Move wp_cache_flush_runtime() next to wp_cache_flush()#57841
  • Partial revert of r55745 – #57841
  • Remove expectation of a deprecation notice from WP_Posts_List_Table tests – #58157
  • Split the tests from user/author.php into individual test classes – #57841
  • Use the function get_num_queries across all unit tests – #57841

Code Modernization

  • Correct fallback return value in get_the_author()#58157
  • Explicitly declare all properties in Text_Diff_Engine_native#58298

Coding Standards

  • Use esc_url() to escape link URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org value in wp-admin/edit-link-form.php#58282

Comments

  • Always lazily load comment 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.#57801

Docs

  • A host of corrections and improvements to inline documentation – #57840
  • Clarify @param types on get_sample_permalink_html 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.#58322
  • Correct default value for the $optimize option in Style Engine – #57840
  • Fix a few more typos in DocBlocks – #57840
  • Fix a few more typos in DocBlocks and inline comments – #57840
  • Fix a few more typos in inline comments – #58334, #57840
  • Fix typo in a comment in Bulk_Upgrader_Skin::header() and ::footer()#58334
  • Improve HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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. file and class headers per the documentation standards – #57840
  • Improve Style Engine DocBlocks per the documentation standards – #57840
  • Improve Style Engine file and class headers per the documentation standards – #57840
  • Improve a few DocBlocks in wp-includes/formatting.php#58316
  • Update code examples formatting in WP_HTML_Tag_Processor documentation – #58028
  • Various corrections and improvements to inline docsinline docs (phpdoc, docblock, xref) and docblocks – #57840
  • describe return type of _get_block_template_file()#57756

Editor

  • Disable lazy loading term meta in get_block_templates#58230
  • Ensure 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. comments are of a valid form
  • Remove shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. support from block templates
  • Restore shortcode support for block templates – #58333
  • Update block editor packages to the latest patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. releases – #58274

Embeds

  • Add protocol validation for WordPress Embed code

General

  • Remove a few is_object() checks followed by instanceof operator – #58309
  • Use static on closures whenever $this is not used to avoid memory leaks – #58323

Help/About

  • Remove unwanted space in a link located on about.php#58373

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.

  • Introduce sanitization function for localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English.
  • Replace “Roll back” with “Restore” in user facing strings – #58282

Media

  • Conditionally skip lazy-loading on images before the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. to improve LCP performance – #58211
  • Increase default for wp_omit_loading_attr_threshold to 3 – #58213
  • Introduce wp_get_attachment_image_context filter – #58212
  • Prevent CSRF setting attachment thumbnails
  • Prevent special images within post content to skew image counts and cause lazy-loading bugs – #58089

Networks and Sites

  • Lazy load site meta – #58185
  • Load WP_Metadata_Lazyloader class file if class does not exist – #58185
  • Load WP_Metadata_Lazyloader class file if class in meta.php – #58185

Plugins

  • Remove is_object() check in WP_Hook:build_preinitialized_hooks()#58290

Posts, Post Types

  • Add a new filter for query arguments in get_pages#12821

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.

  • Add edit link functionality for the wp_template and wp_template_part post types – #57709

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.

  • Do not prime term meta in wp_get_object_terms#57701

Props

Thanks to the 87 people who contributed to WordPress Core on Trac last week: @spacedmonkey (15), @peterwilsoncc (10), @costdev (10), @mukesh27 (9), @xknown (6), @flixos90 (6), @sergeybiryukov (5), @westonruter (5), @johnbillion (5), @thekt12 (4), @audrasjb (4), @youknowriad (4), @jrf (4), @davidbaumwald (3), @timothyblynjacobs (3), @isabel_brison (3), @dd32 (3), @antpb (3), @Presskopp (3), @talldanwp (2), @andraganescu (2), @ntsekouras (2), @ocean90 (2), @NekoJonez (2), @oandregal (2), @matveb (2), @rmccue (2), @desrosj (2), @aristath (1), @johnjamesjacoby (1), @antonvlasenko (1), @ramonopoly (1), @ironprogrammer (1), @annezazu (1), @wonderboymusic (1), @boonebgorges (1), @voldemortensen (1), @DrewAPicture (1), @tillkruess (1), @mamaduka (1), @wildworks (1), @mdxfr (1), @hellofromtonya (1), @kebbet (1), @mattwiebe (1), @bph (1), @ndiego (1), @joen (1), @ellatrix (1), @kevin940726 (1), @andrewserong (1), @welcher (1), @juanmaguitar (1), @coffee2code (1), @azaozz (1), @bor0 (1), @thomask (1), @dilipbheda (1), @marianne38 (1), @mikeschroder (1), @ehtis (1), @jorbin (1), @gziolo (1), @chriscct7 (1), @Otto42 (1), @ryelle (1), @joedolson (1), @Clorith (1), @kamplugins (1), @afragen (1), @apermo (1), @kenwins (1), @noisysocks (1), @zunaid321 (1), @martinkrcho (1), @paulkevan (1), @ahsannayem (1), @rutviksavsani (1), @Enchiridion (1), @sumitbagthariya16 (1), @Soean (1), @sabernhardt (1), @salvoaranzulla (1), @ebai4 (1), @sajjad67 (1), @tijmensmit (1), and @dmsnell (1).

Congrats and welcome to our 5 new contributors of the week: @marianne38, @ahsannayem, @rutviksavsani, @ebai4, @tijmensmit ♥️

Core committers: @sergeybiryukov (17), @audrasjb (10), @spacedmonkey (9), @flixos90 (4), @johnbillion (2), @desrosj (1), @westonruter (1), @oandregal (1), and @davidbaumwald (1).

#6-3, #core, #week-in-core

WP Feature Notifications Meeting Notes: 2023-05-17

Cross-posted from https://github.com/WordPress/wp-feature-notifications/discussions/329

Meeting agenda: #319
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/. discussion: https://wordpress.slack.com/archives/C2K1C71FE/p1684335622715959

Personal updates

  • A pretty quiet week for the project, the key contributors have all been very busy.
  • @Sephsekla is working on a post for Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. around user stories and the problems this should solve, aiming to have that out by the next meeting.
  • @erikyo and @bitmachina are working on the MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia and switch to TypeScript, no major change

Review of project goals and priorities

@erikyo and @Sephsekla discussed high level goals and current priorities for the project

Project goals

@Sephsekla:

  • Create an extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. notification system with PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and REST APIs in WordPress
  • Improve the admin_notices experience by standardising notices through the new system, making things more accessible
  • Create an easier and more robust way for plugins/core to notify users by email, replacing the traditional use of wp_mail
  • Give both users and developers more choice of how notifications are delivered
  • Discussed the use case of improving email notifications:
    • This was always a stated goal early on, but we’ve been more focused on dashboard notifications recently
    • Once the PHP 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. is in place, it should be straightforward to add this as a connector for notification channels – this will be a good test case for adding additional implementations

Current priorities

  • Communication and community engagement, e.g. Make Core post re: user stories
  • Complete in-progress MVP work (functional database, PHP API, hooked up to REST endpoints)
  • Complete TypeScript rewrite (since the JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. codebase is fully typed already, this shouldn’t run into issues)
  • Plan for upcoming events

Upcoming events discussions: WCEU and WCUS

  • It’s unclear whether we will have MVP ready for WCEU/WCUS. We’ll evaluate at our next meeting.
  • WCEU is probably too close to have 0.3.0 ready, but WCUS may be doable.
  • @Sephsekla will be running a contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. table at WCEU (hoping to be able to do the same at WCUS). What are plans for new contributors?
    • @erikyo: Unlikely that we can onboard new contributors onto the project to work on the MVP, can we find more granular work?
    • If we can have PHP API ready, contributors could test building integrations for notification channels (e.g. email, SMS)
    • Lots of opportunities outside code contribution:
    • Design discussion
    • Get feedback on existing prototype
    • Follow up on user stories work: talk to people about their pain points, suggestions
    • Collaborate with 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/ Team on Phase 3 work

Any other business

A TBC agenda for next week’s meeting can be found at https://github.com/WordPress/wp-feature-notifications/discussions/328. If you’d like to suggest a topic, or upvote an existing topic, the team would welcome any input from new contributors! Alternatively, feel free to suggest topics to cover in the comments.

#feature-notifications

What’s new in Gutenberg 15.6? (19 April)

“What’s new 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/…” 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).


Gutenberg release graphic 15.6


Gutenberg 15.6 has been released and is available for download

The latest version of the 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 includes small quality of life enhancements and many 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. The new experimental Details 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. is introduced early for community feedback, and more presets come to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks for spacing and border controls. In the Site Editor, a theme’s style variations are now also available in the left sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. to enable faster updates. Gutenberg 15.6 includes a total of 112 PRs, authored by 45 contributors, 7 of which were new contributors!

Details block, experimental

The new Details block 


Occasionally, you want to hide content until the reader is ready to receive it. This could be spoiler content in a movie review, the transcript of a podcast episode, or a video recording in a blogblog (versus network, site) post. With the new Details block, you can now publish hidden content that opens with a click on the arrow. It’s the first version of the block, and it is behind an experimental feature flag. To test this new functionality, visit Gutenberg → Experiments screen in the WordPress adminadmin (and super admin) and enable the Details block option. This block is still being worked on, and it might change before coming out of experiments. Feedback is encouraged.

Spacer Block gets spacing presets

Spacer Block with presents


Spacing presets were added to Dimension controls in WordPress 6.1 to make controlling space in a theme easier and provide a simplified user experience. This functionality also allows theme developers to employ fluid spacing

Since the introduction of spacing presets, it became clear from community feedback that spacing presets should also be available for the Height control in the Spacer block. This enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. in 15.6 gives theme developers much more flexibility over how spacing is applied throughout a site and enables fluid Spacer blocks! 

Here’s a quick example of what fluid spacing presets might look like when defined 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. using clamp(). You can learn more about fluid spacing and typography in the article Intrinsic design, theming, and rethinking how to design with WordPress over on the WordPress Developer Blog.

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"spacing": {
			"spacingScale": {
				"steps": 0
			},
			"spacingSizes": [
				{
					"size": "clamp(1.5rem, 5vw, 2rem)",
					"slug": "30",
					"name": "1"
				},
				{
					"size": "clamp(1.8rem, 1.8rem + ((1vw - 0.48rem) * 2.885), 3rem)",
					"slug": "40",
					"name": "2"
				},
				{
					"size": "clamp(2.5rem, 8vw, 4.5rem)",
					"slug": "50",
					"name": "3"
				}
			]
		}
	}
}

Style variations in browse mode


With Gutenberg 15.6, the theme’s style variations are now accessible from the left menu in the Site Editor, together with templates, template parts, and navigation menuNavigation Menu A 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. items. This change makes it easier to access style variations and pick your favorite. Clicking “Edit style” opens the editor with the Styles panel active, providing quick access to the additional style controls like typography and color.

Other notable highlights

With 15.6, the Cover block includes all border-related design tools. This was a much-requested enhancement by theme developers, which reduces the need for custom block styling.  

Now, when the Global Styles panel is open in the Site Editor, clicking on any block in the canvas will automatically open the design tools for the corresponding block in the Styles panel. This enhancement will help speed up your workflow and provide fast access to design tools.

Three more visual inconsistencies were smoothened. The visualizer that shows padding and margin changes around blocks now works consistently for larger numbers. In the List View, you can now successfully drop blocks below a Group block, and the Drop Zone in the canvas now has smoother animation

Changelog

Enhancements

Block Library

  • A margin option is added to the Embedded preview block. (39384)
  • Add blockGap as a default control on Columns/Column blocks. (49526)
  • Add color tools to the Time to Read block. (49496)
  • Add spacing presets to the Spacer block. (44002)
  • Cover: Add border support using ResizableBox via BlockPopover. (41153)

Block Editor

  • Add support for hiding breadcrumbs in the Site Editor. (49518)
  • Hide page list on single page list menus. (48725)
  • Small improvements for the Document Overview labeling. (49555)
  • Add a rootClientId prop. (49475)

Global Styles

  • Add styles section to the browse mode sidebar. (49014)
  • Show child layout controls by default. (49389)

Components

  • Global Styles: Link to the block type panel when selecting a block with Styles open. (49350)
  • TreeSelect: Remove margin overrides and add new opt-in prop. (47515)
  • Update media and video icons. (49523)

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)

  • Add missing focus style to start template options previews. (49334)
  • Consistent labels for the WP logo and back links. (49659)

Experiments

  • Add a command center to the site editor. (49330)
  • Add Details/summary block. (45055)

Bug Fixes

Block Library

  • Columns: Prevent removal of locked columns from the column count change UIUI User interface. (49530)
  • Cover:
    • Fixed background causes image to be zoomed in on Safari browser on iPad. (48981)
    • Fix integration tests for ResizableBox via BlockPopover. (49497)
    • Merge block and global styles. (49434)
  • Navigation:
    • Fix exhaustive deps warning. (49291)
    • Fix fallback not rendering. (49576)
  • Image block: Fix image size control percentage selection. (49628)
  • Post Featured ImageFeatured image A 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.:
    • Don’t display the scale control when the aspect ratio is original. (48894)
    • Show all controls when in context without postId. (49609)
  • Post ExcerptExcerpt An 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.: Ensure the postId from the block context is used to get_the_excerpt. (49495)
  • ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.: Prevent external styling of editing UI. (49723)
  • Time To Read: Fix untranslated on the front end. (49704)
  • Avoid empty Gallery block error. (49557)

Site Editor

  • Decode the site title properly. (49685)
  • Show UI to update custom links on the sidebar navigation. (48939)
  • Navigate to editor when clicking Edit in a template part. (49604)
  • Update the template title in the details panel. (49487)
  • Use the keyboard shortcuts package for the command center. (49680)
  • Fix the site editor loading in multi-site installs. (49861)

Global Styles

  • Block Level Settings: Remove WP filters in Gutenberg. (49598)
  • Border Panel: Move global styles forcing of split borders to relevant panel’s onChange. (49603)
  • Remove the pointer cursor on the style variation preview. (49573)
  • Style Variation Picker: Restore pointer cursor when withHover is in use. (49596)

Block Editor

  • DropZone: Smooth animation. (49517)
  • List View: Allow dragging underneath collapsed non-empty container blocks. (49390)
  • List View: Update drop indicator line to be 4px high with a white border. (49462)
  • Tweak remove block label to make it simpler. (49529)
  • Fix redirected links to user documents. (49537)
  • Make InspectorControls tab labels translatable. (49665)
  • Update redirected support link. (49533)
  • Reusable Block: RTL styles don’t get added to the wp-reusable-blocks stylesheet. (49632)
  • Fix padding and margin visualizer accuracy. (49422)

Layout

  • Only show alignment info when parent layout is constrained. (49703)
  • Try reducing the specificity of layout margin rules. (47858)

Post Editor

  • Allow root padding setting to affect padding of post title. (49460)
  • Try fixing post editor layout for wide/full Post Content blocks. (49565)
  • Allow horizontal scroll in panels in the post editor. (49611)

Components

  • Fix inbetween-inserter position in RTL languages. (49683)
  • Update Edit icon to be more consistent with other icons. (49512)
  • Update search icon to be optically more balanced. (49425)
  • Update some icons to address aliasing on high-res screens. (49381)

Performance

Documentation

  • Add section about integration testing to testing documentation. (49454)
  • Add some documentation about the Styles UI components. (49720)
  • Fix Create a Block Tutorial link on blocks package README.md. (49562)
  • Fix end-to-end command typos. (49669)
  • Fix line break issue in Schemas and Content Models section. (44768)
  • Fixes some typos. (49472)
  • getBlockOrder() – use core/block-editor instead of core/editor. (49474)
  • Fix Xcode spelling across the codebase. (49625)
  • Remove the documentation for Playwright configuration override. (49660)
  • Streamlining the New Release Issue Template. (49618)
  • Update components package’s CHANGELOG. (49586)
  • Update documentation for setGroupingBlockName. (49670)

Code Quality

Components

  • Ship TypeScript types. (49229)
  • Simplify CustomGradientPicker’s utility props. (49588)

Global Styles

  • Refactor the effects panel as a generic UI Styles component. (49571)
  • Refactor the filters (duotone) panel as a generic UI Styles component. (49577)

Block Library

  • Add automated tests for Nav block editable list view. (49433)
  • Cover: Avoid adding empty background image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (49477)
  • Remove editor block styles leftovers. (49567)

Site Editor

  • Remove unused keyboard shortcut registration code. (49553)
  • Fix Site Editor isFeatureActive deprecation. (49545)

Tools

Testing

  • Add tests for some of the drag and drop logic. (49631)
  • Adds to gitignore a playwright.config.override.ts entry. (49329)
  • Cover block: Fix failing test. (49455)
  • Workflows: Run PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher unit tests also against current WP – 1. (46983)
  • e2e: Fix flaky columns test. (49676)
  • test: Add Writing Flow tests. (49352)

Build Tooling

  • Add workflow to check for expected wordpress/components CHANGELOG updates. (49443)
  • Docgen: Replace line breaks with spaces and remove line-ending hyphens. (49635)
  • Convert wp data controls to typescript. (49647)

First time contributors

The following PRs were merged by first time contributors:

  • @cawa-93: List View: Allow horizontal scroll in panels in the post editor. (49611)
  • @DustyReagan: Cover Block: Fixed background causes image to be zoomed in on Safari browser on iPad. (48981)
  • @eduwass: Docs: Fix end-to-end command typos. (49669)
  • @HILAYTRIVEDI: A margin option is added to the Embeded preview block. (39384)
  • @mokagio: Fix Xcode spelling across the codebase. (49625)
  • @nefeline: Post excerpt > Ensure the postId from the block context is used to get_the_excerpt. (49495)
  • @thealexandrelara: Docs: Fix Create a Block Tutorial link on blocks package README.md. (49562)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewserong @aristath @aurooba @brookewp @carolinan @cawa-93 @chad1008 @ciampo @dcalhoun @derekblank @draganescu @DustyReagan @eduwass @fluiddot @geriux @getdave @glendaviesnz @hellofromtonya @HILAYTRIVEDI @imanish003 @jameskoster @jasmussen @jhnstn @jorgefilipecosta @Mamaduka @mirka @mokagio @nefeline @noahtallen @ntsekouras @ockham @ramonjd @richtabor @ryanwelcher @SavPhill @scruffian @Soean @t-hamano @talldan @tellthemachines @thealexandrelara @tyxla @youknowriad

Props to @ndiego for co-release leadRelease Lead The community member ultimately responsible for the Release., @joen for visuals assets @priethor, @rich, @annezazu for peer-review

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

What’s new in Gutenberg 15.4 (22 March)

“What’s new 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/…” 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).

Decorative image that's reads: "What's New In Gutenberg 15.4?"

Gutenberg 15.4 has been released and is available for download!

The latest release 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 is lighter on user-facing features than normal and focuses heavily on 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, testing, and other much-needed improvements. But, there are some welcome additions, such as turning paragraphs into columns, an improved Cover 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., and new template descriptions in the site editor.

Table of Contents

Color and layout support for Cover block

The Cover block now supports the text color design tool. The enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. makes it easier for users and theme authors to customize the color for all inner blocks with a single setting. Along with this benefit, the change made it easier to handle transforms from the Media & Text block.

The Cover block also now works the same as the Group block with its layout handling. Currently, the block only supports the flow layout and is set to a constrained width by default.  It does not yet support flex layout variations.

The update brings consistency to layout handling, building atop a standardized system that will make for fewer edge cases and necessary customizations for theme authors.

Theme authors should test their themes against this update. In the past, some have had to work around the layout limitations of the Cover block, and the block’s support of the standard layout system may override custom implementations.

Updated template descriptions

Template descriptions have received a major overhaul in the latest update. Nearly all of them have been updated to better explain what each template does. This should make it easier for users to understand each template’s purpose when customizing it in the Site Editor.

Other Notable Highlights

A new textColumns property has been added as a “block supports” feature and is now in the style engine. It will allow users to split text-based blocks into columns. Developers can opt into this for their custom blocks, but no coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks support the feature yet. There are open tickets for adding it to the Paragraph and Post Excerpt blocks in future updates.

Theme authors can now target the :link and :any-link pseudo-elements in theme.json, giving them more control over styling hyperlinks.

The FontSizePicker component allows for an array of custom units to be defined. This is the first step toward allowing theme authors to eventually control the available units if their themes support custom font sizes. However, the editor’s Typography panel does not yet support this feature.

Change Log

Enhancements

Site Editor

  • Adjust whileHover effect to be a bit subtler and less pronounced. (48928)
  • Go direct to edit from manage all templates list. (48764)
  • Move “Add Template”‘s descriptions to tooltips. (48710)
  • Add descriptions to all panels in the Site Editor’s dark side. (48739)
  • Add hover animation to site editor canvas. (48575)
  • Fix non-us spelling in sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (48976)
  • Prevent the saving button from showing when renaming templates. (48399)
  • Navigation Sidebar: Change the logic about which navigation gets selected for the sidebar. (48689)
  • Add “Added by” description to template part navigation sidebar. (48732)
  • Add border radius to off canvas navigation menuNavigation Menu A 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. items. (48798)
  • Add page details when viewing a specific page. (48650)
  • Duotone: Limit SVG 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. output to used filters. (48995)
  • Hide navigation screen in site editor. (49043)

Block Library

  • Open convert to links modal on select of a page item. (48723)
  • Post Featured ImageFeatured image A 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.: Remove 16:10. (48969)
  • Cover: Add constrained/flow layout. (45326)
  • Cover: Add text color block support. (41572)

Components

  • FontSizePicker: Allow custom units. (48468)
  • Navigator: Disable initial animation. (49062)
  • Try: Update Tertiary Button appearance. (48888)
  • FormTokenField: Hide suggestions list on blur event if input value is invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid.. (48785)

Design Tools

  • Block Supports: Add text columns (column count) to typography block supports. (33587)

Global Styles

  • Move the global styles provider to the app level component. (49011)
  • Add support for :link and :Any-link 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.. (48634)
  • Add compound class to layout wrapper for global spacing styles. (47952)

Block 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.

  • Block Deprecations: Provide extra data for isEligible check. (48815)

Post Editor

  • Provide static native editor help article slugs. (48802)
  • Try getting Post Content layout on server before editor loads. (45299)

Packages

  • Introduce prependHTTPS URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org util. (47648)

Bug Fixes

Block Library

  • Embed Block: Fix Aspect Ratio Classes #29641. (41141)
  • Ensure aspect ratio is applied when Post Featured Image block is linked. (48495)
  • Fix PostContent initial render by waiting for the canEdit request. (48642)
  • Fix classic menu fallback race condition. (48811)
  • Fix navigation block off-canvas appender for empty menus. (48907)
  • Fixes extra UIUI User interface in navigation block inspector. (48679)
  • Import Classic Menu using the menu name as the block menu title. (48771)
  • Navigation Link: Remove color generation code. (48927)
  • Navigation: Fix missing state for MenuControls. (48921)
  • Update missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. from label. (48760)
  • WidgetWidget A 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. Importer: Fix Widget Group block imports. (48669)
  • Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Show variant patterns even if there are no patterns for the Query Loop block. (48793)
  • Comments: Fix ‘sprintf requires more than 1 params’ error. (49054)
  • Adjust Post Featured Image PanelBody label to “Settings”. (49076)
  • Add help text to Gallery Image Size control. (49074)
  • Comments Block (Legacy): Update missing translation. (48820)
  • 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. of created Navigation menu title. (48773)
  • Make sure the directly inserted block in the Nav block is a Page link. (48740)
  • Navigation Link: Don’t remove ‘block_core_navigation_link_build_css_colors’. (49064)
  • Navigation: Don’t save the level of the link in an attribute. (48219)
  • Refactor away state in Nav menu selector. (45464)
  • Revert: Navigation: Always create a fallback menu. (48602)
  • Tweak Latest Posts block PanelBody labels. (49079)
  • Tweak label for Latest Posts excerptExcerpt An 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. control. (49077)
  • Page List Block: Show untitled pages on page list on the editor. (48772)

Site Editor

  • Don’t offer Classic block as a recovery action when not registered. (49051)
  • Fix browser history when synchronising state with urls. (48731)
  • Fix lingering insertion point within template parts. (48913)
  • Fix template part actions in List View. (48905)
  • Fix text alignment in the Site Editor sidebar. (48959)
  • Fix typo in template parts description. (48781)
  • Fix browse mode descriptions margin. (48778)
  • Fix scrollbar in site editor. (48822)
  • Site Editor Navigation panel: Update appearance of non-link blocks. (48933)
  • Navigation sidebar shows a wrong submenu popover. (48941)
  • Show creation popover on empty page links in the navigation sidebar. (48746)
  • Site button metrics. (48918)
  • Remove actions from SidebarNavigationScreenWrapper. (48935)
  • Update template descriptions with more detail. (48934)

Global Styles

  • Fix typo: Use WP_Theme_JSON_Gutenberg instead of WP_Theme_JSON class name. (48648)
  • Fix: Crashes on getNodesWithSettings and getNodesWithStyles. (49023)
  • Fix: Global Styles crash in updateConfigWithSeparator when not block styles are passed. (49045)
  • Fix: Global Styles getNodesWithStyles expects an object with elements. (49044)
  • Fix: Global Styles getPresetsClasses crashes if no selector is passed. (49024)
  • Fix: Global styles forces a white background. (49042)
  • Style Book: Move iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. to root of content area to support styles that overflow block previews. (48664)
  • WP_Theme_JSON: Sync indirect properties changes from core. (48646)

Components

  • Fix HStack and VStack alignment prop. (47914)
  • ResizeTooltip: Use default.fontFamily on tooltip. (48805)
  • ResponsiveWrapper: Use aspect-ratio CSSCSS Cascading Style Sheets. prop and support SVG elements. (48573)

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)

  • Make sure useFocusOnMount runs when all the children tabbable elements have mounted. (42187)
  • Manage selection on block sync. (48979)

Post Editor

  • Distraction Free Mode: Don’t show the metaboxes. (48947)
  • Don’t add Post Content layout styles to title in the post editor. (48663)
  • Fix animation and browser console error when returning from template edit mode. (48930)

Block Editor

  • LinkControl: Remove HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. from suggestion title before passing it to TextHighlight component. (48685)
  • Order initial block items in Navigation with PrivateInserter. (48752)
  • BlockInvalidWarning: Prefer canInsertBlockType and refactor to 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.. (49052)
  • Fix grouping actions in List View. (48910)
  • Fix typo in the media-categories component. (49047)
  • Custom link UI does appears outside canvas on the sidebar navigation. (48633)
  • Use proper color for block styles control. (46684)
  • Update Welcome Guide article links to avoid redirect. (48582)
  • Columns Block: Don’t show the column count change UI when templateLock is all. (48691)
  • Remove border from quick inserter child elements. (48794)

Inspector Controls

  • Fix settings tab active state border in block inspector. (48945)

Testing

  • Playwright Utils: Fix the ‘publishPost’ address locator. (48729)

CSS & Styling

  • Fix duplication of block classname in feature selectors for style variations. (48662)

Experimental

  • Fix KSES filter for un-prettified filters. (49004)

Packages

  • Rich text: Fix range equality checks for Safari. (48733)
  • Preferences Modal: Fix double focus outline in tab item. (48996)

Tools

  • Scripts: Fix render.php isn’t copied in Windows OS. (48735)

Mobile

  • Mobile – Fix parsing of CSS units for null matched values. (48484)

Performance

Block Editor

  • Rich text: useAnchor: Remove value dependency. (48715)

Post Editor

  • Lodash: Refactor away from _.kebabCase() in EditorHelpTopics. (48776)
  • Lodash: Refactor away from edit-post package. (48786)

Site Editor

  • Improve the Navigation panel’s menu query. (48908)
  • Improve Site Editor performance tests. (48138)

Testing

  • Lodash: Remove from e2e-tests package. (48775)

Themes

  • Fix: Incorrect selector generated by append_to_selector method. (48759)

Block Library

  • Lodash: Remove _.get() from various blocks. (48491)

Data Layer

  • Lodash: Refactor away from _.set() in core-data. (48784)

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/ Actions

  • Prefer committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. over author date for perf results timestamp. (48673)

Documentation

  • Add links to hook documentation in curation doc. (48653)
  • Add missing playwright end-to-end documentation to toc.json. (48447)
  • Adding examples of how to programmatically remove the panels in Document sidebar. (48895)
  • Adds link to post on the developer blogblog (versus network, site) to the deprecation page. (49069)
  • Add position: Sticky to the Opt-in into UI controls appearanceTools section. (48763)
  • Fix broken Lerna documentation link. (48890)
  • Table of styles keys with since versions. (48265)
  • Fix URL mismatch. (48931)
  • Theme JSON schema: Add sticky position to settings, minHeight to styles. (48948)
  • Update the end-to-end tests documentation. (48951)
  • jest-preset-default: Update README to reflect current status. (48925)

Code Quality

Components

  • Autocomplete: Refactor to TypeScript. (47751)
  • Navigation: Refactor to TypeScript. (48742)
  • SelectControl: Improve prop types for single vs multiple selection. (47390)
  • DimensionControl(Experimental): Refactor to TypeScript. (47351)
  • Guide: Refactor to TypeScript. (47493)
  • Icon: Refactor tests to TypeScript. (49066)
  • PaletteEdit: Refactor away from lodash.kebabCase. (48637)
  • QueryControls: Refactor away from lodash.groupBy. (48779)
  • components/utils/font: Refactor away from lodash .get. (48629)
  • remove lodash from context/getStyledClassName:. (48688)
  • withSpokenMessages: Change js files to typescript. (48163)

Block Library

  • Add Nav block files to those triggering error for exhaustive deps. (48821)
  • Fix Nav block exhaustive deps warnings. (48680)
  • Media Text: Refactored constants to it’s designated file. (48480)
  • Navigation: Simplify the method for finding the fallback menu. (48916)
  • Duotone.php code cleanup. (48607)
  • Revert “Duotone: Limit SVG filter output to used filters”. (49102)

Block Editor

  • Inserter: Remove outer scope values dependencies. (48961)
  • Inserter: Remove unnecessary dependency ‘delayedFilterValue’. (48960)
  • Remove unused CSS from LinkControl Apply button. (48431)
  • Custom Classname block support: Update code comments to remove reference to anchor id. (48709)
  • List View: Remove unused selector from the ‘useBlockSelection’ hook. (48984)
  • Renames parent selection boolean param and improves documentation. (48677)
  • Tests: Cleanup unnecessary jest timers setup. (49030)
  • Avoid declaring a function inside another function. (49049)

Global Styles

  • Theme JSON: Clarify status of fixed position opt-in in appearance tools. (48660)
  • Extract a BorderPanel component as a reusable component between Global Styles and Block Inspector. (48636)

Data Layer

  • Data: Use real timers for private APIs tests. (49029)

Packages

  • Preferences: Remove types field from package.json. (49053)
  • Upgrade typescript to 4.9.5. (48299)
  • Compose: Remove useAsyncList from mobile exports. (48241)
  • Animation: Refactor to TypeScript. (47042)
  • PanelBody: Convert to TypeScript. (47702)
  • Refactor ToolbarContext to TS. (49002)
  • Refactor/toolbar button component to typescript. (47750)
  • PaletteEdit: Convert to TypeScript. (47764)
  • navigateRegions: Convert to TypeScript. (48632)
  • withFallbackStyles: Convert to TypeScript. (48720)
  • withFilters: Convert to TypeScript. (48721)
  • withFocusReturn: Convert to TypeScript. (48748)
  • withNotices: Convert to TypeScript. (49088)
  • Packages: Remove completely two deprecated webpack plugins. (48770)

Tools

  • Env: Fix typo / grammar README.md. (48952)
  • ci: Add Rich Text code owner. (48727)

Testing

  • Add pageUtils.pressKeys to playwright utils. (49009)
  • Add artifacts upload for the performance tests. (48243)
  • Fix flaky block hierarchy navigation test by better inserter selection. (48780)
  • Migrate multi-block selection end-to-end tests to Playwright. (48035)
  • Navigation block end-to-end tests: Default to my most recently created menu. (48132)
  • Upgrade Jest from 27 to 29.5.0. (47388)
  • Duotone: Style Engine: Add unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. and associated refactoring. (49033)
  • Query Block: Add tests for getValueFromObjectPath() util. (48956)

First time contributors

The following PRs were merged by first time contributors:

  • @abhi3315: Link Control – Add support for text only labels. (47930)
  • @hbhalodia: Change higher order with-constraint-tabbing from .js to .tsx. (48162)
  • @sboerrigter: Fix incorrect css property in editor-color-palette documentation. (48333)
  • @shreyasikhar: Site Editor Sidebar: Add line-height for template/parts name and update width for edit button. (48160)
  • @suvrodattamitu: Style Engine: Fix wrong property name letterSpacing to lineHeight. (48091)
  • @tomdevisser: Remove copy for managing a block’s style variations. (48367)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw@abhi3315@adamziel@afercia@alexstine@andrewserong@annezazu@brookewp@carolinan@chad1008@ciampo@dcalhoun@draganescu@ellatrix@fluiddot@geriux@getdave@gvgvgvijayan@gziolo@hbhalodia@jorgefilipecosta@jsnajdr@kevin940726@MaggieCabrera@Mamaduka@marekdedic@ndiego@ntsekouras@oandregal@ockham@richtabor@sboerrigter@scruffian@shreyasikhar@spacedmonkey@suvrodattamitu@tellthemachines@tomdevisser@tyxla@WunderBart@youknowriad@t-hamano

Props to @welcher for co-leading the release, @priethor for feedback, and @saxonfletcher and @joen for assets creation.

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

A Week in Core – March 13, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between March 6 and March 13, 2023.

  • 48 commits
  • 62 contributors
  • 47 tickets created
  • 8 tickets reopened
  • 68 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Build/Test Tools

  • Use assertSame() in Tests_Comment::test_update_comment_from_privileged_user_by_privileged_user() – #56800
  • Use assertSame() in WP_Date_Query tests – #56800
  • Add 6.2 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". to the workflow for testing branches
  • Add the workflow_dispatch event to the performance workflow – #57687
  • Check if the Docker is available when running npm run env:start#51898
  • Fix cleaning of old CSSCSS Cascading Style Sheets. files in wp-includes/blocks/*#57891
  • Remove all previously built files when running clean:files#47749
  • Test the new performance workflow regularly – #57687
  • Update several 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/ Actions – #57572
  • Update the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for logging performance workflows – #57687
  • Prevent registering the same private 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/. 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. twice – #57795
  • Add a unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. for register_block_style_handle() with an RTL localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English.#56797
  • Adjust the expected mime type for WOFF fonts on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1.12+ – #56817
  • Improve Tests_Media::test_wp_generate_attachment_metadata_doesnt_generate_sizes_for_150_square_image() – #56800, #57370
  • Move some data providers in Tests_Functions next to the tests they are used in – #56793
  • Use assertSame() in Tests_Theme_wpThemeJson – #56800, #57621
  • Add unit tests for Gallery blocks – #55571

Bundled Themes

  • Add missing trailing / in HelpHub links – #57689, #57726
  • Bump version numbers for WordPress 6.2 – #57689
  • Improve various globals documentation, as per docblockdocblock (phpdoc, xref, inline docs) standards – #56792, #57069

Cache API

  • Introduce new queries cache groups – #57625
  • Make network-queries and site-queries global cache groups – #57625

Coding Standards

  • Bring some consistency to wp_validate_redirect() existence checks – #57839
  • Use strict comparison in wp-admin/includes/taxonomy.php#57859

Comments

  • Prime post caches in WP_Comments_List_Table – #57802

Date/Time

  • Save a call to wp_timezone in mysql2date – #57705

Docs

  • Add missing 6.2.0 since mention in get_the_privacy_policy_link()#56792, #56345
  • Add security warning in remove_query_arg() docblock to make it consistent with add_query_arg()#57885, #56792
  • Improve some DocBlock formatting in wp-includes/class-wp-xmlrpc-server.php#57840

Editor

  • Add more details to template descriptions – #57892
  • Combine Date template description translations – #57892
  • Move variables to where used in wp_render_layout_support_flag – #57815
  • Update wordpress packages for 6.2 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. 5 – #57471
  • Update wordpress packages for 6.2 RC1 – #57471
  • Revert r54860#57630, #55437

External Libraries

  • Update jQuery to 3.6.4 – #57324

Filesystem API

  • Return correct error data from copy_dir() if the directory listing failed – #57907

Formatting

  • Restore consistent quotes in _make_web_ftp_clickable_cb()#53290, #56444

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API

  • Document shorthand usage of the next_tag() – #57863, #57575
  • Fix finding RCData and Script 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.) closers – #57852, #57575

Help/About

  • Update copy & style for About page and subpages – #57477

Media

  • Revert wp_ajax_save_attachment_updated hook – #23148
  • Improve display of cropped image in media editor – #55070

Networks and Sites

  • Replace get_blog_details with get_site#57571

Props

Thanks to the 62 people who contributed to WordPress Core on Trac last week: @costdev (17), @peterwilsoncc (10), @hellofromTonya (10), @mukesh27 (9), @sergeybiryukov (7), @spacedmonkey (6), @audrasjb (6), @ankitmaru (5), @azaozz (4), @ironprogrammer (4), @flixos90 (4), @desrosj (3), @gziolo (3), @mamaduka (3), @robinwpdeveloper (3), @tillkruess (2), @isabel_brison (2), @antonvlasenko (2), @ntsekouras (2), @dmsnell (2), @sabernhardt (2), @zieladam (2), @mreishus (1), @TobiasBg (1), @thomasplevy (1), @roytanck (1), @mkox (1), @razthee007 (1), @poena (1), @cnspecialcolor (1), @pento (1), @hasanuzzamanshamim (1), @bgoewert (1), @viralsampat (1), @andy786 (1), @antpb (1), @petitphp (1), @annezazu (1), @kebbet (1), @bph (1), @afragen (1), @pravinparmar2404 (1), @owi (1), @skithund (1), @kapilpaul (1), @adarshposimyth (1), @dhrumilk (1), @joemcgill (1), @andrewserong (1), @davidbaumwald (1), @joen (1), @greenshady (1), @glendaviesnz (1), @jameskoster (1), @marybaum (1), @sereedmedia (1), @jpantani (1), @laurlittle (1), @richtabor (1), @markoserb (1), @fcoveram (1), and @sanketchodavadiya (1).

Congrats and welcome to our 5 new contributors of the week: @razthee007, @cnspecialcolor, @owi, @adarshposimyth, @dhrumilk ♥️

Core committers: @hellofromtonya (13), @sergeybiryukov (9), @audrasjb (6), @spacedmonkey (5), @desrosj (5), @azaozz (2), @davidbaumwald (2), @zieladam (1), @ryelle (1), @jorbin (1), @joemcgill (1), @peterwilsoncc (1), and @adamsilverstein (1).

#6-2, #core, #week-in-core

A Week in Core – February 27, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between February 20 and February 27, 2023.

  • 45 commits
  • 103 contributors
  • 50 tickets created
  • 7 tickets reopened
  • 64 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Move wp-theme-plugin-editor script before – #57073

Bootstrap/Load

  • Check that either mysqli_connect() or mysql_connect() is available – #51988

Build/Test Tools

  • Add test coverage for the get_posts_navigation() function – #55751
  • Remove duplicate DocBlockdocblock (phpdoc, xref, inline docs) opening characters in tests/theme/wpTheme.php#56792

Bundled Themes

  • Twenty Seventeen: Mark one more screen reader string with a translator comment – #29748
  • Twenty Twenty: Avoid PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warnings in 8.1 due to incorrect usage of wp_add_inline_style()#57777

Coding Standards

  • Use strict comparison in bundled themes’ PHP files – #56791

Comments

  • Prevent replying to unapproved comments – #53962
  • Restore global $comment assignment in comment_form_title() – #53962

Database

  • Remove the check for sitecategories table on Database Repair screen – #57762

Docs

  • Correct duplicate hook reference for notify_moderator#57808
  • Document default values for optional parameters in various DocBlocks – #56792
  • Fix erroneous since mention in wp_internal_hosts hook – #57796

Editor

  • Fix ‘wp-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.-library-theme’ style enqueue conditions – #57561
  • Fix invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. parameters being passed to wp_register_style()#57771, #56990, #57688
  • Update the WP packages with fixes prior to WP 6.2 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. 3 – #57471

Formatting

  • Add aspect-ratio tests for safecss_filter_attr()#57664

General

  • Add more error checking to WP_List_Util::pluck()#56650

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.

  • Fix finding bookmarks set on closing 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.) WP_HTML_Tag_Processor – #57787, #57575
  • Set $this->html to protected to support subclassing – #57575
  • Add fragment support to WP_Http::make_absolute_url()#56231

Help/About

  • Avoid extra redirections on HelpHub Links – #57726
  • Avoid extra redirections on HelpHub Links – #57726
  • Restore the correct URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for Editing Files article on Edit Themes screen – #57726
  • Use a consistent capitalization for “Support forums” links across WP Adminadmin (and super admin)#57726
  • Use a consistent capitalization for “Support forums” links across WP Admin – #57726
  • Use the new /documentation/ URLs for HelpHub links in Bundled Themes – #57726
  • Use the new /documentation/ URLs for HelpHub links in WordPress Admin – #57726

Mail

  • Fix character encoding issues in 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/Theme background update emails – #56964

Media

  • Add WP_Image_Editor_Imagick::set_imagick_time_limit() method – #52569

Networks and Sites

  • Fix the attributes for the email input field on the new networknetwork (versus site, blog) user screen – #38460
  • Remove confusing upper case for option names on Edit Site: Settings screen – #50572
  • Use consistent markup for admin notices – #39213

Posts, Post Types

  • Pass the post object to _update_posts_count_on_delete()#57023

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.

  • Remove an unnecessary call to _doing_it_wrong() and corresponding new text string from the implementation of the new wp_save_post_revision_revisions_before_deletion 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.#57320

Site Health

  • Use PasswordHash API directly when validating keys – #56787

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.

  • Rename temporary variable in wp_queue_posts_for_term_meta_lazyload()#57150

Themes

  • Account for a numeric theme directory in WP_Theme::__construct()#54645
  • Add 3 and update 2 shadow presets in theme.json#57708, #57559

Toolbar

  • Update the URL for Documentation link in the admin bar – #57726

Upgrade/Install

  • Introduce WP_Automatic_Updater::is_allowed_dir() method – #42619

Users

  • Adjust the initialization of the $duplicated_keys array in wp_salt()#57121
  • Fix confirmation link for 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 users with no role – #57164

Widgets

  • Match variable types in rss feedRSS Feed RSS is an acronym for Real Simple Syndication which is a type of web feed which allows users to access updates to online content in a standardized, computer-readable format. This is the feed. link filter – #57594

Props

Thanks to the 103 (!) people who contributed to WordPress Core on Trac last week: @sergeybiryukov (15), @costdev (12), @audrasjb (11), @sabernhardt (9), @hellofromTonya (5), @flixos90 (4), @mukesh27 (4), @dhrupo (3), @poena (3), @desrosj (3), @Ankit-K-Gupta (2), @afragen (2), @hellofromtonya (2), @dmsnell (2), @hasanmisbah (2), @sakibmd (2), @jrf (2), @afercia (2), @dd32 (2), @robinwpdeveloper (2), @afrin29 (2), @mamaduka (2), @scruffian (2), @ipajen (2), @johnbillion (2), @richtabor (1), @drzraf (1), @fabiankaegy (1), @priethor (1), @ajlende (1), @jameskoster (1), @oandregal (1), @mtias (1), @kellychoffman (1), @joen (1), @beafialho (1), @antpb (1), @adityaarora010196 (1), @skithund (1), @boniu91 (1), @sc0ttkclark (1), @dimadin (1), @bgin (1), @sannevndrmeulen (1), @ndiego (1), @jffng (1), @glendaviesnz (1), @mikachan (1), @milana_cap (1), @fasuto (1), @Chouby (1), @schlessera (1), @dshanske (1), @ellatrix (1), @ntsekouras (1), @roytanck (1), @calvinalkan (1), @paulkevan (1), @ocean90 (1), @joemcgill (1), @madhudollu (1), @sanketchodavadiya (1), @franz00 (1), @swissspidy (1), @meyegui (1), @markjaquith (1), @spacedmonkey (1), @hugodevos (1), @winterpsv (1), @alvastar (1), @lopo (1), @simongomes02 (1), @robin-labadie (1), @wildworks (1), @chrisbaltazar (1), @sun (1), @geisthanen (1), @joyously (1), @michelmany (1), @jongycastillo (1), @rahmohn (1), @arnolp (1), @pbiron (1), @zieladam (1), @benjgrolleau (1), @afshanadiya (1), @Mista-Flo (1), @adeltahri (1), @stalukder03 (1), @dilipbheda (1), @itsnikhilpatel (1), @paulamit (1), @paulschreiber (1), @zevilz (1), @joedolson (1), @obayedmamur (1), @aryamaaru (1), @jeremyfelt (1), @stevenkword (1), @marksabbath (1), @aristath (1), @chiragrathod103 (1), and @azaozz (1).

Congrats and welcome to our 21 (!!) new contributors of the week: @hasanmisbah, @sakibmd, @adityaarora010196, @fasuto, @calvinalkan, @meyegui, @winterpsv, @alvastar, @simongomes02, @robin-labadie, @chrisbaltazar, @sun, @geisthanen, @michelmany, @jongycastillo, @arnolp, @itsnikhilpatel, @paulamit, @zevilz, @marksabbath, @chiragrathod103 ♥️

Core committers: @sergeybiryukov (15), @audrasjb (14), @hellofromtonya (4), @peterwilsoncc (3), @flixos90 (2), @joedolson (2), @johnbillion (2), @ocean90 (1), @timothyblynjacobs (1), and @gziolo (1).

#6-2, #core, #meta6545, #week-in-core

What’s new in Gutenberg 15.2? (22 February)

“What’s new 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/” is published following every Gutenberg biweekly release, showcasing new features included in the release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor (formerly called Full Site Editing) projects. Previous release posts can be found via the #gutenberg-new 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.).

Gutenberg 15.2 has been released and is available for download!

The latest version of Gutenberg, 15.2, has made frequently requested improvements to the template editing experience allowing users to enjoy a better editing experience with more efficient and intuitive controls. 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) improvements and additional control support for blocks are also notable additions.

Table of contents

Edit templates and template parts fearlessly with 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.

Before Gutenberg 15.2, the option to access the revision comparison screen was not surfaced in the site editor when creating or editing templates and template parts. This sometimes resulted in uncertainty about what to do if changes needed to be reverted to an earlier saved state or what would happen if a template was inadvertently modified. This challenge has been frequently raised as a pain point in user feedback.

The template and template part inspectors now have a button to access revisions for templates. This helpful and convenient option will allow users creating templates and template parts in the site editor to revert to an earlier saved state quickly. This will help ensure that templates and template parts can be tweaked and adjusted as needed without fear of losing any of the progress made. (45215)

Enhancements to navigation in the Site Editor

Until now, moving through the site editor to access navigation menus, templates, and template parts required transitions in and out of the editor experience to find the item to be edited. Further, saving multiple parts of a site required individual saves, and returning to the main WordPress dashboard required multiple clicks.

Gutenberg 15.2 refines the site editor navigation experience to allow access to templates, template parts, and the primary navigation menuNavigation Menu A 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. more easily with improved navigation while working in the site editor. Convenient buttons to save all changes across navigation, template, and template parts with a single click as well as the addition of a more prominent link to return to the WordPress dashboard, have also been added. (47777),(47950),(47142)

When creating a new template, it can be overwhelming to start from a blank page.

A new modal overlay, introduced in Gutenberg 15.2, allows one to easily choose from a selection of starting patterns when creating a new template. If a minimal approach is preferred, though, never fear! The option to start with a fallback pattern is also available.  (46248)

Continued accessibility improvements

The Gutenberg team is committed to making the editing experience accessible for all users. One way this is accomplished is by implementing improvements for those using screen readers, keyboard navigation, and other assistive technologyAssistive technology Assistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. https://en.wikipedia.org/wiki/Assistive_technology to navigate Gutenberg more easily. Some of the accessibility bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes and enhancements in Gutenberg 15.2 include improved labeling, optimizing the tab and arrow key navigation, and ensuring proper hierarchy of headings. (45135), (47898), (47148), (47426), (43848), (47855), (47895)

Other notable highlights

An option has been added to set an aspect ratio for images in the Post Featured ImageFeatured image A 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. 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.. This allows more options for controlling the size and proportions of the image without needing to set width or height parameters explicitly. (47854)

Support for border color, style, and width has been added to the Button block as a part of ongoing efforts to bring more design controls to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks. (44574)

Based on long-requested feedback, an excerptExcerpt An 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. length control has been added to the Post Excerpt block. (44964)

Changelog

Enhancements

Template Editor

  • Add a nested level when selecting templates or template parts. (47777)
  • Add: Modal to choose a start pattern on new templates. (46248)
  • Update gutenberg_get_template_hierarchy. (47716)
  • Add template revision button. (45215)

Site Editor

  • Add back link to Design heading in site editor navigation to return to Dashboard. (47950)
  • Adds a global save button to the site editor. (47142)
  • Tidy up the generation of the site editor page title. (48053)

Block Library

  • Button: Update: Make button a content block. (47936)
  • File block: Add color block support to File block. (41870)
  • Navigation: Add integration tests for NavigationMenuSelector component. (47825)
  • Navigation: Updates “Add Submenu item” text to “Add Submenu link”. (48030)
  • Post excerpt: Add excerpt length control. (44964)
  • Update: Make OffCanvasEditor use LeafMoreMenu by default. (47844)
  • Add aspect-ratio to post featured image block. (47854)
  • Button: Adopt support for border color, style, and width. (44574)
  • Latest Comments: Add typography support. (43310)
  • Verse: Adopt border supports. (48021)

Global Styles

  • Extract the Global Styles Typography Panel into block-editor package. (47356)
  • Move more link about custom CSSCSS Cascading Style Sheets. to part of description. (47781)
  • Site Editor: Update ‘Additional CSS’ subtitle string. (47671)
  • Style Book: Exclude blocks that are not allowed to insert. (47461)

Block Editor

  • Migrate from TextControl to NumberControl to remove margin overrides. (47160)
  • Add settings “drawer” to Link Control. (47328)
  • Button: Prepend HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. to Buttons block links when missing protocol. (47311)
  • Show a pointer/hint in the settings tab informing the user about the styles tab. (47670)
  • [Patterns]: Reorder pattern categories. (47760)

Components

  • Add parent navigation support for the navigator component. (47883)
  • Zoom out mode: Scale iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. instead of contents. (47004)
  • Components: Add support for named arguments in the navigator components. (47827)

Bug Fixes

Block Library

  • Embed: Fix: Remove browser default border for iframe in the editor. (47987)
  • File block: Re-add editor styles for classic themes. (47686)
  • Image: Revert “Prevent the image from being resized larger than its container”. (47846)
  • Image: Update image block margins on RTL. (47617)
  • Navigation Block inspector: Fix link UIUI User interface popover opening on links that have a URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (47828)
  • Navigation: Close Link UI if cancelled. (48029)
  • Navigation: Enable undo after creating a new menu. (47683)
  • Navigation: Fixes undo and redo for nesting operations in the navigation block’s inspector. (47633)
  • Navigation: Remove the IS_GUTENBERG_PLUGIN check around block_core_navigation_parse_blocks_from_menu_items. (47824)
  • Navigation: Update deps for the useEffect that creates navigation menus. (47912)
  • OffCanvasEditor: Only allow some blocks to be converted to submenus. (47974)
  • Page List: Respect the selected parent page when converting to a list of navigation links. (47651)
  • Read More: 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.: Update string concatenation method in read more block. (47815)
  • ToolsPanel: Display optional items when values are updated externally. (47727)
  • [Quote]: Fix deprectated large style specificity rule. (47969)
  • Fix the ‘WP_HTML_Tag_Processor’ file path. (47823)
  • Cover: Ensure url is not malformed due to sanitization through wp_kses. (47906)

Site Editor

  • [Block Editor]: Lock blockInspectorAnimation setting. (47740)
  • Disable Strict Mode, breaks dev site editor. (47701)
  • Add: Modal to choose a start pattern on new templates. Take 2. (47927)
  • Fix ComplementaryArea’s initial isActive state. (47498)
  • Fix custom Template Parts rename action. (47932)
  • Fix site editor navigation. (48025)
  • Shadow: Move shadow into own panel. (47634)
  • Specify active state color for template navigation button. (47851)

Block Editor

  • useBlockSync: Change subscribed.current on unsubscribe. (47752)
  • Edit Post: Fix the ‘inlineToolbar’ settings toggle. (47960)
  • Fix clicking on the toggle button not closing the block inserter. (47926)
  • LinkControl: Fix scrollbar displayed on toggle link settings. (47986)
  • Rich text: Stabilise onFocus. (47685)
  • Block Spacing: Don’t show UI when only one direction is supported. (47523)
  • [Layout]: Fix align controls for hybrid themes. (47961)

Design Tools

  • AvatarAvatar An 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 application of borders. (47630)
  • Image: Allow deprecated blocks to render border-radius. (47766)
  • ToolsPanel: Ensure display of optional items when panel id is null. (47864)

Global Styles

  • Fix incorrect targeting of block wrappers for root padding in the edi…. (48002)
  • Fix infinite render of inline block preview. (47697)
  • Fix: Issues on block level settings. (47842)

Components

  • ColorPalette: Ensure text label contrast checking works with CSS variables. (47373)
  • SelectControl: Fix multiple prop styling. (47893)

Post Editor

  • Fix multi entities saved state in the post editor. (47734)
  • LocalAutosaveNotice: Use stable notice id to prevent double notices. (47776)
  • Distraction free mode: Fix keyboard shortcut not working. (47900)
  • Term sorting is incorrect in flat term selector. (47795)
  • useResizeObserver: Handle strict mode double effects. (47703)

Accessibility

  • List view: Modify the shortcut to focus while open. (45135)
  • Add an aria label to the site save dialog. (47898)
  • Fix UrlInput combobox to use the ARIA 1.0 pattern. (47148)
  • Fix constrained tabbing failures with Safari and Firefox. (47426)
  • Fix the headings hierarchy in the styles sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (43848)
  • Site Editor: Append template type and name to the site editor page title. (47855)
  • Template editor: Only disable the save button if no changes rather than hiding it. (47895)

Performance

  • Avoid string-allocation on keypress with inputRule. (47094)
  • Fix empty results handling in performance test results. (47646)
  • Fix typo in performance script name. (47647)
  • Lodash: Remove from wordpress/keycodes package. (47737)

Block Editor

  • Block Editor: Optimize __unstableGetVisibleBlocks(). (47681)

Site Editor

  • Enable ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. StrictMode again. (47639)

Block Library

  • Navigation: Performance: Improve params in block_core_navigation_get_most_recently_published_navigation. (47998)
  • Page List: Block improvement.. (47981)
  • Page List: Performance: Improve page list callback. (48004)
  • Post Title: Performance: Render_block_core_post_title – Use post object instead of id. (48001)
  • Template Part: Performance: Replace usage of wp_get_theme()->get_stylesheet() with get_stylesheet(). (48027)
  • Tweaks to gutenberg_render_layout_support_flag. (48003)

Data Layer

  • Lodash: Refactor away from _.get() in resolvers cache middleware. (47743)
  • Lodash: Refactor away from _.mapValues() in data registry. (47742)
  • Lodash: Refactor persistence 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 away from _.merge(). (47790)
  • Lodash: Remove from wordpress/data’s getResolutionState(). (47838)
  • Lodash: Remove from wordpress/data. (47848)
  • Lodash: Remove from useDispatchWithMap(). (47835)

Template Editor

  • Disable lazy loading term 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. get_block_templates. (47999)

Themes

  • Improvements on append_to_selector method. (47833)

Block Directory

  • Optimize DownloadableBlocksPanel. (47679)

Experiments

  • Handle block metadata attribute and related experimental APIs. (47791)
  • Rename the “experiments” export to “privateApis”. (47975)
  • [Trunktrunk A 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.] Rename experiments package to private-apis. (47839)

Documentation

  • Add: Database credentials to wp-env documentation. (47940)
  • Block schema and block supports docs: Add dimensions and position settings. (48057)
  • Components: Polish heading level component APIs. (47788)
  • Docs: Add ancestor property to block-registration.md doc. (45832)
  • Docs: Don’t recommend using short array syntax in WP_HTML_Tag_Processor. (47958)
  • Docs: Fix the incorrect link to eslint-plugin-jsx-a11yAccessibility 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). (47773)
  • Fix unbalanced parenthesis in Element README. (47700)
  • Minor updates in Private APIs. (47953)
  • Set block attributes to require either type or enum. (45365)

Code Quality

  • Core Data: Fix ESLint warnings for the 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. directory. (47811)
  • ESLint: Change jsdoc/check-line-alignment from warn to error. (47878)
  • ESLint: Fix a bunch of ESLint alignment warnings. (47872)
  • Enable react-hooks/exhaustive-deps eslint rules. (24914)
  • Update moment and moment-timezone packages to fix timezone issues. (47879)

Components

  • AnglePickerControl: Refactor to TypeScript. (45820)
  • BorderBoxControl: Migrate tests to TypeScript, remove act() call. (47755)
  • BoxControl: Convert to TypeScript. (47622)
  • ComboboxControl: Convert to TypeScript. (47581)
  • CustomSelectControl: Privatise __experimentalShowSelectedHint using wordpress/experiments. (47229)
  • CustomSelectControl: Update size prop options to new format in Storybook examples. (47779)
  • Navigator: Add more pattern matching tests, refine existing tests. (47910)
  • NavigatorButton: Reuse Button types. (47754)
  • Panel: Convert to TypeScript. (47259)
  • Popover: Lock the __experimentalPopoverPositionToPlacement function. (47505)
  • Refactor Toolbar component to TypeScript. (47087)
  • Remove BaseField component. (47911)
  • Remove unnecessary act() from Button tests. (47687)
  • Remove unnecessary act() from DropdownMenu tests. (47692)
  • Remove unnecessary act() from Popover tests. (47690)
  • Remove unnecessary act() from ToolsPanel tests. (47691)
  • ResizableBox: Refactor styles to TypeScript. (47756)
  • TreeGrid: Convert to TypeScript. (47516)
  • MenuItemsChoice: Refactor to TypeScript. (47180)
  • ToolsPanel: Refactor Storybook examples to TypeScript, fix types inconsistencies. (47944)

Block Library

  • Gallery: Minor code quality update. (47774)
  • Image: Simplify the method for getting block editor settings. (47903)
  • Navigation: Chore Remove unexistant parameter from selectNavigationMenus call. (47941)
  • Site Logo: Simplify the method for getting block editor settings. (47736)
  • Table Block: Don’t render empty section. (47753)

Site Editor

  • Make process_blocks_custom_css method protected. (47725)
  • Move site editor 6.2 specific code to the right file. (48023)
  • Remove: Unused code from the navigation inspector select logic. (48044)
  • Sync: WidgetWidget A 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 changes from the core. (47875)
  • Add missing period in keyboard shortcut descriptions. (47899)
  • Extract the getSupportedStyles selector to the blocks store as a private selector. (47606)
  • Remove the name and element props from the TypographyPanel component. (47908)

Post Editor

  • Edit Post: Remove unnecessary ‘classnames’ in HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. component. (47635)

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/.

  • Chore: Move Gutenberg_REST_Templates_Controller from 6.2 to 6.3 compatibility. (48077)

Patterns

  • Refactor: usePatternsCategories: Simplify categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. sorting. (47843)

Document Settings

  • Most Used Terms: Pass dependency to the useSelect. (47810)

Block 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.

  • HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API: Move into 6.2 Compat Folder since inclusion in Core. (47749)

Data Layer

  • Fixed incorrect type annotations in wordpress/data. (46881)

Tools

Testing

  • Add tests for gutenberg_render_layout_support_flag. (47719)
  • Migrate Heading block tests to Playwright. (47955)
  • Migrate query test to Playwright. (47995)
  • Navigation: end-to-end tests: Default to classic menu. (47867)
  • Navigation: end-to-end tests: Default to my only existing menu. (47744)
  • Remove obsolete failing test for Font Size Picker. (47913)
  • Shard playwright tests into two separate jobs using a matrix. (47629)
  • Update code and tests for 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. class after the back port in core. (47668)
  • Upgrade Playwright to 1.30.0. (48007)
  • end-to-end perf tests: Run each test in a separate page. (47889)
  • Fix editor.getBlocks for unmodified default block. (48093)
  • Visual Regressionregression A 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. tests: Use default playwright utils. (47991)
  • Navigation: Add warning test. (45207)

Build Tooling

  • Add basic tsconfig.json validation. (47595)
  • Front-end classic performance test: Set TwentyTwentyOne when running in isolation. (47965)
  • Perf tests: Store test run results as artifact. (45747)
  • Performance suite: Track Largest Contentful Paint in the front-end. (47938)
  • Scripts: Add PostCSS (.pcss extension) file support to wp-scripts. (45352)
  • Performance: Restore initial reduce value in perf results log script. (47650)
  • Cherry-pick CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.: Fix the default label to match the documentation. (47832)
  • Scripts: Use start without watcher using –no-watch. (44237)
  • Fonts API: Add missing files to lib/load.php. (48108)
  • Dependency Extraction Webpack Plugin: Update json2php dependency. (47831)

First time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @adamziel @afercia @ajlende @alexstine @andrewserong @aristath @brookewp @carolinan @ciampo @creative-andrew @d-alleyne @dcalhoun @dmsnell @dpellenwood @draganescu @ellatrix @flootr @fluiddot @georgeh @geriux @getdave @glendaviesnz @griffinjohndavid @gziolo @hellofromtonya @jhnstn @jorgefilipecosta @jsnajdr @kebbet @kevin940726 @kkmuffme @madhusudhand @MaggieCabrera @Mamaduka @marekdedic @mauteri @mcsf @mike-day @mirka @mreishus @nielslange @noahtallen @noisysocks @ntsekouras @oandregal @scruffian @sgomes @SiobhyB @spacedmonkey @t-hamano @talldan @tellthemachines @tyxla @wojtekn @WunderBart @youknowriad

Props to @annezazu, @joen, @juanmaguitar, and @priethor for reviewing this post.