The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in our bug tracker.
GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 11.6 has been released! This release includes a number of nice enhancements and as usual many bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes.
Site Logo cropping and rotating within the editor
Before Gutenberg 11.6, the image used as the site logo had to be edited before being uploaded to your site. With the goal of providing a wide array of tools to adapt your logo without leaving the editor, it is now possible to crop, zoom, and rotate the image you choose for the site logo directly in the Site Logo blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.’s toolbar!
Locking control at block level
Alongside template level locking, now you can lock individual blocks to prevent moving or removing them; you can do this by adding a lock attribute on the block settings. Block-level lock takes priority over the templateLock feature and currently, you can lock moving and removing blocks.
The toolbar of locked blocks will have the movers hidden, and the Remove block option won’t be available either.
Query Pagination uses Flex Layout
Following previous releases bringing Flex Layouts to blocks, Gutenberg 11.6 improves the Query Pagination block to support the flex layout along with a justification option, for automatic best-fit.
Other Notable Highlights
Regarding Full Site Editing and Global Styles, basic support for child themes has been added. This means the BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. Site Editor is available when the child themeChild themeA Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/. of a block theme is active, and its templates, template parts, and theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. are inherited.
The writing flow has also received some enhancements in this release: the Richtext format toolbar now shows a visual clue for hidden active items and, when using the quick inserter and clicking the Browse all button, your current filter value is now passed to the main inserter without the need to type it again, making this switch between inserters seamless.
Template Part Focus Mode refers to the view that lets you focus and work on a single template part, like a headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., and is available for any template part. This isolated template part editing is now accessible from the ellipsis menu in the Template Part toolbar. More Template Part Focus Mode improvements are coming soon, so make sure to check its tracking issue here.
11.6
Enhancements
Block Library
Post Title block: Add typography formatting options. (31623)
Cover: Move cover min-height into dimensions panel via SlotFill. (34065)
Group Block: Add information about selected element types for Group Block. (33976)
Image Block: Create two-way data binding for ImageSizeControl. (34649)
Columns Block: Update block description of columns block. (34705)
Gallery block: Add toolbar button to convert old galleries to new format. (34606)
Block Editor
Format toolbar: Visual clue for hidden active items. (21892)
Increase Link UIUIUser interface search results to 10 on the Navigation Editor screen. (34808)
Inserter: Pass filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. value when clicking Browse All. (34912)
Components
ColorPicker: Enhance the new color picker design. (34598)
ColorPicker: Add reset timeout to ColorPicker’s copy functionality. (34601)
Resize Handles: Fix stroke width of resize handles. (34949)
ServerSideRender: Improve ServerSideRender Component to retain preview of the component while it is loading new state. (28289)
ServerSideRender: Delayed loading state of ServerSideRender component. (35033)
Global Styles
Add a simple Global Styles preview to the sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (34991)
Update the Global Styles Icon and use it in the site editor’s panel. (34871)
Update the global styles sidebar to use a navigation component. (34885)
Widgets Editor
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Group: Make title directly editable. (34799)
Block APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Introduce lock control at the block-type level. (32457)
Design Tools
InspectorControls: Wrap block support slots in ToolsPanel. (34157)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Improve file block accessibility by adding aria-describedby to download button. (28062)
Button Block: Add prefix to the description ID. (34900)
MediaReplaceFlow: Avoid ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. warning when selecting media. (34618)
Remove .has-link-color class upon clearing the link color. (34700)
Rich Text: Fix arrow navigation with consecutive formats. (35014)
Rich Text: Also strip object replacement character when removing padding. (34851)
Writing flow: Fix focus trap on non-text input types. (32714)
Fix bug in the receiveBlocks action resulting in a broken block list. (35076)
Block Library
HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block: Prevent external styling of editing UI. (34727)
Page List Block: Fix gap in vertical page list. (35026)
MediaPlaceholder: Fix media library button opening the file upload modal. (34894)
Clean theme data when switching themes in the customizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.. (34540)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.
Add missing field _invalid in menu item REST API. (34670)
Fix navigation editor missing appender not showing appender when no blocks selected. (34678)
Fix navigation editor undo button being active when editor loads. (34839)
Open link control if submenu parent is link. (34798)
Stop submitting Create Menu form in busy state. (34983)
Fix saving locations using the “Manage Locations” popup. (34714)
Site Editor
Site Editor – add basic pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party support. (34460)
Update documentation for ClipboardButton component. (34711)
Create Block: Remove wp-cliWP-CLIWP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/https://make.wordpress.org/cli/ callout since not recommended and outdated. (34821)
Update the HooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. section in documentation. (35035)
Scripts: Add CHANGELOG entry for jest-dev-server upgrade. (34657)
Rich text: Only merge neighbouring equal formats when applying a format. (35016)
Writing Flow: Merge place caret at edge functions. (30481)
Site editor: fix PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice: Undefined index: __unstableType. (34735)
Use rest_is_field_included function in menu endpoints. (34673)
Remove duplicate Theme JSON block gap key. (34774)
Block Editor
Global shortcuts: Use React events (portal bubbles & contextual). (34539)
Rename experimental prop used in BlockControls. (34644)
Update callers to handle when getBlockType returns undefined. (34891)
Block Library
Latest Comments: Add missing parameter to widget_comments_args. (29403)
Navigation submenu block: Replace global shortcut event handlers with local ones. (34812)
Components
ColorPicker: Replace global shortcut event handlers with local ones. (34508)
Delete the createComponent utility function. (34929)
i18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
Add a “translators:” comment in the core class used to implement a Block widget. (34840)
Try to fix flaky iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. test. (34776)
Test that add_theme_supports are loaded for themes without theme.json. (34998)
Storybook: Remove G2 prefix from the Components section. (34734)
Block Editor: Update react-spring to 9.2.4. (30979)
Move react-native-url-polyfill to dev dependencies. (34687)
Use Jest related rules only when the package is installed. (33120)
Ensure that all *.asset.php files are included in plugin.zip. (34875)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 10.6
7.6 s
38.38 ms
Gutenberg 10.5
7.2 s
38.54 ms
WordPress 5.8
7.9 s
45.97 ms
Kudos to all the contributors that helped with the release. 👏
It’s been two weeks since 11.4, so it’s time for another GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, 11.5!
This update includes BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Gap support, improved support for Flex Layouts, performance improvements, and additional design tools.
Theme / Block Gap Support
Block Gap support adds the ability for blocks to opt-in to a control that allows users to choose the distance between items within a block.
With Block Gap support in place, it has also been added to the Columns, Title, and Navigation blocks.
Buttons in the the Buttons Block move closer together or farther apart as the Block Gap is changed.
Flex Layout Highlights
Following the introduction of Flex Layout in 11.2.0, now Flex Layouts are supported within the Social Links and Group blocks! The Social Links block now has a ‘flex’ justification option, for automatic best-fit.
There is also a new variation of the Group block that allows for flex layout. You can try it out by choosing “Row” from the block inserter.
Social Icons change flow when flex justification is selected.
Site Title and Logo Inside Navigation Block
It’s now possible to build your site logo or title directly into menus, enabling new design possibilities! Insert, and modify the title or logo that you prefer, using design tools, then re-order for your ideal look.
A Site Logo is added to a Navigation Block, then resized and placed.
Global Styles
Global styles are now available to themes by default, allowing block, theme, and patterns to have a reliable set of styles provided by coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress..
Themes are now able to selectively disable text and background colors. This allows theme authors to provide exactly the experience they’d like to provide users, whether allowing custom colors, gradients, or only their curated selections.
Other Notable Highlights
The Heading Levels menu has been redesigned, and is now vertical, making it easier to visualize the hierarchy.
New vertical Heading Levels menu, with H2 selected.
11.5.0
Features
Design Tools
Block Support: Add gap block support feature. (33991)
Enhancements
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Media Placeholder: Change media URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org input type to allow a local URL path. (29138)
Block Library
Columns Block: Use blockGap between Columns blocks. (34456)
Query Pagination Next/Previous: Add an arrow attribute and sync next/previous block’s arrow. (33656)
Site Logo Block: Update block description to be concise. (34471)
Site Title Block: Update block description to be concise. (34475)
Social Links Block: Use the new flex layout. (34493)
Video Block: Use existing video poster image on insert. (34415)
Components
MenuItem: Add right padding for unchecked radio and checkbox items. (34406)
ToggleGroupControl: Update stories to use knobs. (34497)
Core Data
Add isRawAttribute to entity configuration. (34388)
Design Tools
Add wide alignment control only if theme provides layout.wideSize. (34586)
Update justification control in flex layout. (34651)
ToolsPanel: Change icon from horizontal to vertical ellipsis. (34369)
Full Site Editing
Limit FSE adminadmin(and super admin) notices to the Themes screen. (34353)
Global Styles
Allow disabling text and background color via theme.json. (34420)
Make global styles available to all themes. (34334)
i18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
Add context to ‘none’ strings for better translations. (34341)
Make permalinks documentation URL translatable. (34282)
Add default editor styles applied to themes without theme.json and without editor styles. (34439)
Widgets Editor
Add ‘WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Group’ block to widgets screens. (34484)
Allow themes with theme.json to opt-out of block gap styles. (34491)
Bug Fixes
Accessibility
Fix button block focus trap after a URL has been added. (34314)
Block Editor
Fix menu item padding regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.. (34435)
Heading Block, Paragraph Block: Fix long strings of text without spaces overflow the block. (34222)
Gallery Block: Fix bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. with stalled upload when image size too large. (34371)
Gallery Block: Fix media placeholder height in site editor. (34629)
Gallery Block: Fix problem with overflowing captions on new gallery block format. (34402)
Latest Posts: Fix various ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. warnings in development log. (34428)
Border Controls: Display color indicator and check selected color. (34467)
Border Support: Fix check for displaying border support panel. (34516)
Gap block support: Force gap change to cause the block to re-render (fix Safari issue). (34567)
Letter Spacing: Group letter spacing correctly under typography supports. (34515)
Global Styles
Fix block-level global styles color panels. (34293)
Font Appearance Control: Fix error in global styles for Site Title in TT1-Blocks. (34520)
MetaMetaMeta 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. Boxes
Change default value of enableCustomFields to undefined. (33931)
Fix metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. reordering. (30617)
Packages
Blocks: Register block when invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. value provided for the icon. (34350)
Core Data: Add ‘include’ to the query key. (34583)
Core Data: Use resolveSelect instead of select in saveEntityRecord. (34584)
Interface: Block Toolbar & Popover component – Prevent sticky position from causing permanently obscured areas of the selected block. (33981)
Scripts: Only use svgr/webpack in js files. (34394)
Scripts: Convert legacy entry point arguments for compatibility with webpack 5. (34264)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.
Default batch processor: Respect the batch endpoint’s maxItems. (34280)
Widgets Editor
Fix Block Settings sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. unexpectedly collapsing. (34543)
Legacy widget’s preview functionality is broken when the page is moved. (34384)
Prevent focus trap in Legacy Widget block’s preview iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.. (33614)
Performance
Block Editor
Improve the getBlock and getBlocks performance. (34241)
Rich Text: Replace global event handlers with local ones. (34492)
Rich text (core): OnFocus method can be replaced with HTMLElement.focus. (32054)
Use Setting: Consolidate the PATHS_WITH_MERGE constant to one instance. (34407)
Block Library
Gallery Block: Add docblockdocblock(phpdoc, xref, inline docs) comments to the new gallery hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (34562)
Gallery Block: Remove IE specific CSSCSSCascading Style Sheets. hacks. (34372)
Button Block: Replace global shortcut event handlers with local ones. (34498)
Navigation Block: Refactor to use generic classnames. (34171)
Navigation Link Block: Replace global shortcut event handlers with local ones. (34500)
Fix linting error in trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (34464)
Linting: Remove global event listener warning. (34528)
More work on the stability of the performance metrics. (34229)
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party
Added janw-me to the Codeowners for the PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher FSE folder. (32990)
Jest Preset: Restore the default setting for the verbose option. (34327)
Make Test_Widget compatible with WP_Widget. (34355)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.5
6.71s
40.42ms
Gutenberg 11.4
6.80s
44.79ms
WordPress 5.8
7.53s
50.72ms
Kudos to all the contributors that helped with the release! 👏
Thanks to @beafialho and @joen for the release post assets, @priethor for coordination and review, @youknowriad for release and tools wrangling, @mamaduka for answers and help throughout, and @talldanwp for inviting me to shadow a release in preparation.
Depending on where you live, it’s the first day of Spring. Or Autumn. Or, if you live on Venus, just another season of sulphuric acid showers.
No matter where you are, GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 11.4 has been released with new features to brighten your mood including the refactored Gallery BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience., duotone filters for featured images, and more block design tools!
Gallery Block now uses Image Blocks
The Gallery Block now acts as a wrapper for coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Image Blocks.
Individual gallery images will therefore feature all existing and future functionality of not only Image Blocks – for example, the ability to add custom links, filters, and styles – but also standard block behavior such as move, drag and drop, copy, and keyboard navigation.
For now, the new Gallery Block can be enabled on the Gutenberg Experiment page, but the plan is for the Gallery Block to ship with WordPress 5.9.
Theme and pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors can get wise about backward compatibility recommendations over in the Gallery Block Refactor Dev Note.
Duotone filters for featured images
Duotone filters were introduced to image and cover blocks in 10.6. By extending duotone filters to Post Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. blocks, 11.4 enables us to set consistent effects across post and page templates, recent posts lists, and Query Block content.
Padding support for Button Blocks
As of 11.4, we can define padding for Button Blocks with the further option of linking padding values to vertical and horizontal axial sides.
The aim is to provide greater control as well as uniformity in the way we display button elements. We can still set a single padding value for all sides – adding extra vertical or horizontal padding just gives us that extra flexibility to create variations on our design patterns.
Support for block gap spacing
Having a consistent way to tweak the margin/gap between blocks has been a long-standing feature requestfeature requestA feature request should generally begin the process in the ideas forum, on a mailing list, as a plugin, or brought to the attention of the core team, such as through scope meetings held for each major release. Unsolicited tickets of this variety are typically, therefore, discouraged.. 11.4 introduces the groundwork for adding gap spacing control to blocks such as Buttons, Images, and Columns, opening up the possibility of more powerful and precise layout tools.
There’s work in progress to bring this to the editor so stay tuned for updates in upcoming releases!
Other notable highlights
Font weight support is now available for the Post Date and Post Terms Blocks.
An “early betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.” feature has also made it into 11.4: the ability to expose a parent block’s toolbar controls to its child blocks. A use case would be changing the alignment of Buttons when editing a single Button. Keep an eye out for a request for feedback on this developing feature soon.
11.4.0
Enhancements
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Cover Block: Allow alt text in Cover blocks. (33226)
Add aria-describedby to custom select control component to describe currently-selected font size. (33941)
Block Editor
Block Lists: improve iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. block, pattern and template previews. (28165)
Block Library
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: update Post Template sub-block icon. (34204)
Convert Gallery block to use Image blocks. (25940)
Post Featured Image: add duotone block supports. (34113)
Post Featured Image: add contextual help text to the scaleproperty. (34158)
File block: update transform from image to use image filename if caption is empty. (34256)
Post date Block: add font weight support to the block. (34070)
Post terms: add font weight support to the block. (34142)
Button: update spacing support to use axial padding. (33859)
Components
Add deprecated props adapter for ColorPicker. (34014)
Wrap SegmentedControl in a BaseControl with an added help property. (34017)
Combobox: update the current selection if the list of suggestions is filtered. (33928)
Post Title: use rich text hook and updating tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) to h1 (31569)
Design Tools
Add layout default value support for blocks. (34194)
Dimensions Panel: add padding tool as default for blocks where this is a common setting. (34026)
Updates the “settings” icon, which toggles the display of additional controls in an interface. (34165)
Post Editor
Migrate post editor feature preferences to the interface package. (34154)
Widgets Editor
Migrate customize widgets feature preferences to interface package. (34135)
Refactor editor ‘feature’ preferences to interface package. (33774)
Bug Fixes
Block APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Spacing/Dimensions Supports: separate spacing from dimensions for compatibility purposes. (34059)
Block Editor
Font-size adjustment for tablet and mobile device previews. (33342)
Fix single block selection by holding shift key. (34137)
Fix unwanted additional spaces added around pasted text on Windows. (33607)
Inserter: prevent non-deterministic order of inserter items. (34078)
Try: Fix multiselect toolbar indent and reformat BlockContextualToolbar(). (34038) (34173)
Block Library
Latest Comments: use site localeLocaleA 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. in the editor. (33944)
Navigation: fix vertical layout on the frontend. (34226)
Navigation: add z-index value to responsive menu overlay. (34228)
Navigation: enable flex on container to fix space between. (34258)
Post ExcerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.: remove interactive formatting. (34083)
RichText: fix space key for button and summary elements. (30244)
Search Block: add space between generated border class names. (34025)
Build Tooling
Webpack: Fix watch on .json and .php files. (34024)
Pin TypeScript dependency to a specific version to avoid pulling in breaking changes. (34422)
Block Editor: use groups for InspectorControls. (34069)
Block Library
Add generic classnames to children of Navigation. (33918)
Global Styles
Add slashes back to the Theme JSONJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (33919)
Add block spacing gap configuration to theme.json and add support for this CSS variable to the “flow/default” layout. (33812)
Unit Control: add unit tests for getValidParsedUnit utility method. (34029)
Rename SegmentedControl to ToggleGroupControl. (34111)
Dropdown Menu: remove min-width from the dropdown component and add whitespace rule to avoid wrapping (33995)
Core Data
Allow passing store definitions to controls. (34170)
Site Editor
Remove extra DOM element used for template part overlay. (34012)
Tools
Build Tooling
Automated Changelog: force group all documentation tasks under Documentation. (34042)
Automated Changelog: rename “Editor” grouping to “Post Editor” to avoid ambiguity with other editors. (34093)
Automated Changelog: sort feature groups by issue name. (34071)
Automated Changelog: use nested headings for feature groups instead of indenting lists. (34040)
Automated Changelog: remove UncategorizedheaderHeaderThe 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. in output and place items at top. (34037)
Add Typescript extensions to watched files. (34094)
Remove obsolete step that pushes tags in NPM publishing flow. (34114)
Release workflow: only commit modified changelogs. (34211)
ESLint
Eslint plugin: use @typescript-eslint/no-duplicate-imports in TS projects. (34055)
GitHubGitHubGitHub is a website that offers online implementation of git repositories that can 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/ Contributor Templates
Issue Forms: simplify the bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. report form template. (34007)
Logs
Hide deprecation logs under a console group. (34163)
Testing
Emulate reduced-motion in end-to-end tests. (34132)
Remove extra props from Cover deprecations. (34066)
Remove the ENVIRONMENT_DIRECTORY env variable that was added to the performance jobs. (34086)
Add snapshot test for changelog formatting. (34049)
Experiment with using REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. in end-to-end tests to build up states. (33414)
Performance benchmark
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.4
6.35s
36.87ms
Gutenberg 11.3
6.29s
36.97ms
WordPress 5.8
6.91s
35.48ms
Thanks to @critterverse for our release preview assets, @priethor for guiding the release, @noisysocks, @talldanwp, and @andrewserong for their help with the release build and deployDeployLaunching code from a local development environment to the production web server, so that it's available to visitors., and to all who contributed to this release. Thank you for your splendid work!
Two weeks have passed since 11.2, so here we are again for a new GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, 11.3.0. This update includes inserter performance improvements, new controls for BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Dimensions, and some enhancements around how we handle Featured Post Images.
New Dimensions Panel
Replacing the Spacing Panel, this new Dimensions Panel gives us a deeper control over supported spacing, size, and other related style options. It also offers the ability to customize what you’d like to have shown. This is a great addition that builds on the overall dimension controls work across blocks.
Block inserter performance improvements
The block inserter is getting a big performance boost! Enjoy searching and inserting blocks with speed and ease.
Dimension controls for Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. Block
There are now new height, width, and scale controls for the featured image block, bringing it into greater parity with the Image block. This change impacts the Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block in a big way by allowing even more layout options.
New icons for Reusable Blocks and Template Parts
New icons are now available for Reusable Block and Template Parts to make them each more recognizable and more intuitive to interact with.
Post Featured Image: Add basic dimension controls. (31634)
Template Part: Try new icons for reusable blocks and template parts. (34002)
Block Patterns
Add translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. context on titles. (33734)
Update snackbar to use framer motion instead of reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. spring. (33717)
Reduce specificity of reset & classic styles. (32659)
Document Settings
Disable spellcheck and autocomplete in permalink slug field. (33708)
Global Styles
Dimensions Panel: Add new ToolsPanel component and update spacing supports. (32392)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.
Improve the likelihood of getting rich link previews by modifying UA string for URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org Details REST API endpoint. (33747)
Template Mode: Add busy state to template creation modal. (33076)
Widgets Editor
Add error boundaries to widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. screens. (33771)
Bug Fixes
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Button: Fix justification for button block when selected. (33739)
Image: Fix issue with canInsertCover not being set to false for empty arrays. (33863)
Query Pagination Numbers: Fix first page’s link. (33629)
Block APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Dimensions Support: Switch dimensions block support back to using spacing key. (34030)
Block Editor
Closing the block inserter decrements block type impressions. (33906)
Fix block appender position in classic themes. (33895)
Fix positioning discrepancy with draggable chip. (33893)
Force link text to wrap in the Link UIUIUser interface when encountering extra long link text. (33753)
Improve display of LinkURL menu and fix spacing. (33652)
Only show rich preview for image and description if data is available. (33660)
URL Details: Avoid PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice when parsing protocol-relative icon URLs. (33779)
Components
useBreakpointIndex: Attach resize event listener to window instead of document. (33902)
Components: Fix RTL on custom gradient picker. (33831)
FontSizePicker: Use number values when the initial value is a number. (33679)
FormTokenField: Avoid error when maxLength value is hit. (33623)
MetaMetaMeta 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. Boxes
Fix Safari 13 metaboxes from overlapping the content. (33817)
Navigation Editor
Avoid React warning when creating a new menu. (33843)
Fix regressed menu selection dropdown placeholder value for Nav Editor menu locations UI. (33748)
Improve the performance of the parser by removing the automatic custom classnames handling. (33903)
Post Editor
Refactor the HierarchicalTermSelector so that it does not cause unnecessary loading of terms. (33418)
Template Editor
Template Mode: Remove ‘per_page’ argument from the template data selector. (33742)
Experiments
Full Site Editing
Site Editor: Implement a settings object filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.. (33737)
Template part selection popover – minor style updates for visiblity. (33733)
Template Part placeholder – Add title step to creation flow. (33703)
Navigation Block
Navigation: Fix navigation block appender invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid.htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (33964)
Enable the ability to remove a link from the Nav Link block in the Nav Block. (33777)
fix: Broken link in documentation to block support mechanism. (33780)
Update documentation to reflect new automated process for feature grouping. (33573)
link fix: Block editor SidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. Tutorial. (33308)
Use the __unsafe_useEmotionCache in the useCx hook. (33982)
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data
Deprecate getAuthors in favor of getUsers. (33725)
Global Styles
No longer read from experimental-theme.json. (33904)
Remove the experimental prefix and rename theme.json files. (33925)
Post Editor
Refactor MetaBoxesArea to to functional components using hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (30542)
Add search performance measures and make other measures more stable. (33848)
Avoid double parsing the content when loading the editor. (33727)
Block Hierarchy Navigation waits for the column to be highlighted. (33721)
Widgets Editor: Try to fix flaky customizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. inspector test. (33890, 33965)
Build Tooling
Readable JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. assets PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: Fix webpack 5 support. (33785)
Scripts: Use cssnano to minimize CSS files with build. (33750)
Scripts: Webpack configuration update to minimize CSS. (33676)
Scripts: Add missing fallback for target in webpack 5 configuration. (34112)
ESLint
Include .jsx extenstion when linting import statements. (33746)
GitHubGitHubGitHub is a website that offers online implementation of git repositories that can 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/ Contributor Templates
Update bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. issue template to use forms. (33713, 33786, 33761)
Correct function_exists() check typo introduced in #33331. (33513)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.3
7.23s
38.57ms
Gutenberg 11.2
7.82s
37.89ms
WordPress 5.8
7.99s
41.44ms
Kudos to all the contributors that helped with the release! 👏
Thanks to@javiarce for our preview assets, @cbringmann and @mkaz for proof reading this post, @annezazu‘s great copy edits, @priethor for shepherding the process along so helpfully, @youknowriad for helping 🧑🚒 with the release, and everybody else who contributed to this release for your wonderful work!
Two weeks have already passed since 11.1, so this week GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 11.2 was released. This release seems to have had more of a focus on bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes and tooling, but nevertheless there are still some great features to highlight. Color support has been expanded on two blocks, a new layout option is being tested for parent blocks, and there’s now an option for creating a new post after publishing.
Search blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. – button and border colors
Add a new page/post button on publish panel. (33276)
Widgets Editor
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. inserter: Clarify that the button toggles the inserter. (33561)
Update widget editor help links to point to the new support article. (33482)
Components: Promote VisuallyHidden from ui into full components (#31244). (31902)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Inserter: In text label mode, use “Close” label when inserter is open. (33534)
Data
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Pass query argument to data selector shortcuts. (33689)
Bug Fixes
Block Library
Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Allow authors to select images uploaded by other users. (33567)
Remove instagram reference from embed block’s description. (33519)
Block Editor
Fixed that the block is selected instead of the title when using the select all shortcut. (33621)
Post Editor
Most Used Terms: Avoid 403 error for non-administrators. (33569)
Editor: Set ‘hide_empty’ for the most used terms query. (33457)
HierarchicalTermSelector: Use TextControl component. (33545)
PWA manifest: icon: Fix error when adminadmin(and super admin) bar is gone. (33702)
Widgets Editor
Fix pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party/theme incompatibility, call onChangeSectionExpanded conditionally. (33618)
Components
Fix: Native UnitControl to handle single unit configuration. (33641)
BoxControl: Prevent invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. style values. (33444)
UnitControl: Set correct unit when units has one option. (33634)
components: Use useCx to fix iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. support. (33301)
I18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Fix broken loopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. in WP_Theme_JSON_Resolver. (33624)
Update button block corner radius test to px. (33562)
Add unsupported block title translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. test. (33340)
Release docs: Add process for creating a point releaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. of the Plugin. (33546)
Docs: Run Prettier after updating APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. in documentation. (33498)
Publish android artifacts with publish to s3 gradle plugin. (33441)
Build: Split configuration into two parts – blocks and packages. (33293)
Automate grouping of release Changelog PRs by feature. (33229)
Packages: Ensure changelog entries are attributed to the correct release. (33590)
Add i18n filters to documentation table of contents. (33556)
Update the create a block theme how-to guide. (33382)
Block API: Improve how blocks assets are versioned. (33075)
Update the tested up to version in the readme file. (33760)
Correct {% end%} tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) – missing a space. (33189)
Use tabs instead of spaces in block transform doc example. (33549)
Fix flaky widgets end-to-end tests by waiting for the snackbar correctly. (33317)
Scripts: Add changlog entry for module update. (33473)
Create block: Update “Tested up to” in readme.txt. (33493)
Code Quality
Block Library
Fix optional params in page list rendering. (33639)
Block Editor
Block editor: Use ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. events for shortcuts (portal bubbles & contextual). (32323)
Block editor: Remove focus stopPropagation from appender. (32003)
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.2
8.48s
37.89ms
Gutenberg 11.1
8.54s
38.17ms
WordPress 5.8
8.43s
39.71ms
Kudos to all the contributors that helped with the release! 👏
Two weeks have passed since the last GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, which means a new version is available! Gutenberg 11.1 adds the ability to edit a blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. border easily, enables drag and drop support for the List View component, and includes many bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes centered around the Widgets Editor and Block Library.
Block supports: border
Take an early look at custom block borders! When borders are enabled in a theme.json file, and a block declares that it supports it with the block supportsAPIAPIAn 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., a new block panel is available that lets us change the border radius, width, style, color, and border units.
Adminadmin(and super admin) panel available as PWA. (33102, 33310)
Block Breadcrumbs: Small chevron icon for breadcrumb separators. (33042)
Block Library:
Columns Block:
Add stack on mobile setting to allow for columns without mobile breakpoints. (31816)
Add the percent unit to the default units in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. (33468)
Latest posts: Remove grey color for dark themes. (33325)
List Block: Add link color control to list block. (33185)
Post Terms Block: Add a “separator” attribute to post-terms block. (32812)
Set border style none when border width zero. (32080)
Link Editing: Add Unlink button to LinkControl popover. (32541)
List View: Enable drag and drop in List View. (33320)
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Editor: Adds auxiliary class names for editor styles. (33388)
General UI:
Block Settings Menu: Don’t render ‘Move to’ if there is only one block. (33158)
Disable ‘Post Publish’ button if saving non-post entities. (33140)
Preferences: Polish labels and consolidate options in preferences. (33133)
New APIs
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: Block editor settings endpoint. (33128)
UI Components: Add a SearchControl component and reuse across the UI. (32935)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Improve high contrast mode rendering of icon buttons. (33062)
Bug Fixes
Block Breadcrumbs: Fix breadcrumbs htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. structure and ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. warnings. (33159)
Block Editor:
Move layout styles to document head (instead of rendering inline). (32083)
Warn only in edit implementation when using useBlockProps. (33380)
IframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.: Remove reset styles. (33204)
Block Library:
Buttons Block: Remove green background color in button preview. (33116)
Embed Block: Include missing attributes when upgrading embed block. (33235)
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. Block:
Prevent entering invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. values in the Query Loop block configuration. (33285)
Update getTermsInfo() to workaround parsing issue for translatable strings. (33341)
Search Block:
Fix search block button position dropdown accessibility/UXUXUser experience issues. (33376)
Update search block to handle per corner border radii. (33023)
Site Title: Decode entities in site title. (33323)
Post Except: Fix excerpt_morefilterFilterFilters 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.conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. and remove wordCount attribute. (33366)
Design Tools:
Color: Prevent color panel from showing as empty. (33369)
Duotone:
Avoid rendering duplicate stylesheet and SVG. (33233)
Theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.
Allow themes to provide empty values for color.duotone and spacing.units. (33280)
Specify what settings can be part of settings.layout. (33303)
Site Editor: Close navigation sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. when all posts clicked. (33393)
Fix moving inner blocks in the Widgets CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.. (33243)
Fix inserter size on Widgets Editor headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (33118)
Merge conflicting wp.editor objects into a single, non-conflicting module. (33228)
Retrieve latest widgets before loading sidebars. (32997)
Apply enhancements included in WordPress 5.8. (33252)
Clarify the type of apiVersion in block metadata. (33249)
Fixes a typo in the documentation for block supports. (33247)
Block Editor API: Changes to support multiple admin screens in WP 5.8. (33262)
Custom Block Editor: Fixed bad image syntax and bold text. (32897)
Fix API documentation for data reference guides. (33384)
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Release: Update Gutenberg release documentation to clarify release post workflow. (33328)
theme.json:
Add examples and highlight backward compatibility. (33421)
Update theme.json documentation for WordPress 5.8. (33131)
Fix codetabs syntax in theme.json documentation. (33417)
Use markdown headings instead of links for API declarations. (33381)
Update documentation for link color in WordPress 5.8. (33162)
NPM Packages: Introduce release types to npm publishing script. (33329)
Plugin: Introduce tools folder with configuration files. (33281)
Workflows:
Release Workflow: Remove “experimental” status from WP 5.8 stable items. (33214)
Re-enable manually triggered workflows on forks. (32821)
Use NPM caching built into action/setup-node. (33190)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.1
6.38s
26.12ms
Gutenberg 11.0
6.06s
29.55ms
WordPress 5.7
8.52s
36.26ms
Kudos to all the contributors that helped with the release! 👏
Two weeks have passed since the last GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, which means the time is now upon us for Gutenberg version 11.0.0 (released 7th July).
With efforts still concentrated on the WordPress 5.8 release, this version of the Gutenberg Plugin is heavily focused on backports and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes.
That being said however, it is not without its highlights! Gutenberg 11.0 introduces:
The new editing overlay and interaction – shown here on a reusable blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience..
When the block is not selected, hovering the block results in a blue overlay, whilst clicking anywhere inside the block will act to select the block itself, preventing its children from being selected before the parent.
This mechanic aims to address feedback from users who were surprised at the lack of friction when editing these reusable symbols, which resulted in a frustrating experience.
The new workflow is an improvement that streamlines the experience of working with these powerful blocks.
Support for CSSCSSCascading Style Sheets. shorthand properties in theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. and block attributes
Theme JSON is becoming a powerful way of defining reusable CSS rules across Themes. As usage of this feature grows, it’s important to support common ways of setting style properties.
For example, the following is an excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. from an example theme.json file which adds unique padding and border values for the Button block:
Improve insertion point and drag-n-drop in the widgets screen. (32953)
Set Legacy WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. form to display only when not hidden. (33015)
Stretch Widgets editor layout to full height. (32905)
Add ability for Legacy custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. widget to transform into custom HTML block. (32862)
Remove the widget switcher block toolbar button for the Legacy Widget. (32733)
Wire handle_legacy_widget_preview_iframe to admin_init_hook. (32854)
Replace “technical” error notice with a user-friendly version. (33165)
Replace legacy widget icon with its new version. (33041)
Block Library:
Media Text block: allow drag and drop media replacement for Media & Text. (29710)
Categories block: Add a label for screen readers. (33060)
Post Template Block: Add post-classes in the loopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. for Post Template block. (30497)
Global Styles and Templates:
Allow left/right/center alignments when a layout is defined. (32810)
Allow longhand and shorthand properties in theme.json and block attributes. (31641)
Add filters to get_block_templates functions. (31806)
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data:
Allow making context-specific requests using the data module. (32961)
Make apiFetch requests abortable via AbortController in @wordpress/api-fetch. (32530)
New APIs
Add an APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to define the default template used for the template mode. (32771)
Bug Fixes
Widgets Editor:
Adjust widget form margins in the new Widgets Editor. (33040)
Adjust Legacy Widget form styles to match editor. (32974)
Fix creating and editing non-multi widgets. (32978)
Fix wide widget styles to allow floated contents. (32976)
Fix to allow adding the same image twice in Widgets Editor. (32951)
Align widget sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. button. (32738)
Add width: 100% to components-base-control inside wp-block-legacy-widget. (33141)
Fix error message – bail out if get_current_screen() returns null. (33261)
CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.:
Fix block toolbar deselection when clicking scrollbar. ([32762]
Avoid adding default block to empty widget areas in customizer. (32979) (#32762))
Fix apparent overflow in Customizer caused by widgets editor. (32749)
[RegressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.] Button block: Add deprecation for style.border.radiusnumber. (33117)
Query loop:
Select first Query Loop found from pattern selection. (32737)
Fix race condition for making Post blocks inside uneditable. (33037)
Fix full width children from scrolling horizontally only in the editor. (32892)
Set default block variations not to inherit from global query. (33163)
Group block: Avoid rendering the layout configuration twice. (33045)
Button block:
Use border support provided styles and classes. (33017)
Adding buttons should respect the preferred style. (31089)
Categories block:
Fix broken experience for lower privileged users when fetching Categories . (32994)
Fix crash when trying to access categories on insertion. (32989)
Latest Posts & Latest Comments blocks: Fix to remove the default indent in various editors. (32983)
Archives block: add custom classes to archive dropdown. (32971)
Post terms block: Fix broken experience for lower privileged users when fetching Terms. (32947)
Site Title and Site Tagline blocks: readonly view when the user has no the right permissions. (32817)
Image block:
Fix block validation errors when clearing height/width. (32524)
Fix drag and drop indicator above first block and RTL drop indicators. (33024)
Fix glitchy block focus style when multi selecting blocks. (32927)
Fix collapsing appender when paragraph disabled. (32894)
Fix unintended HTTPHTTPHTTP 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. search request in <LinkControl> when showSuggestions is false. (32857)
Ensure only valid URLs or anchors within the text are automatically created as links. (32663)
Fix drag and drop indices when a block list contains a style element. (32776)
Consistent border with focus styles for block appender. (33022)
Set explicit z-index on interface body to ensure it’s pinned under interface headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (32732)
Rename .interface-interface-skeleton__bodyz-index to .interface-interface-skeleton__content. (32869)
Template editor:
Fix: Template editor header area is difficult to navigate with screenreaders. (32938)
Do not allow users to create templates with blank titles. (32809)
TemplatePanel: Fixed a problem that when a new template is created, the template is not displayed in the select box. (32744)
Global styles:
Fix a regression where custom-units are forced as an array. (32898)
Update ESnext code in the block toolbar documentation. (32422)
Fix “Gutenberg” typo in dynamic blocks tutorial. (33013)
Polish the Gutenberg release docs, performance audit section. (32770)
Update filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. in Widget Block Editor documentation. (32759)
Block Editor and Block API:
Add link color supports to Block API documentation. (32936)
Unify Block Editor readme language and example. (31850)
Architecture: Add a schema explaining the relationship between the packages that comprise the post editor. (32921)
ServerSideRender: Update documentation for placeholder props. (33030)
Add ‘area’ key to function doc for gutenberg_get_block_templates. (32746)
Widgets: Add technical implementation details for Widgets Customizer. (33026)
Code Quality
Block Library:
Query Loop: use plain div for wrapper element in patterns. (32867)
Post Template block: remove gutenberg domain from Post Template block. (32804)
Ensure there is no direct import from core/editor store. (32866)
Improve block categories by moving several blocks from Design to Theme. (32568)
Typings:
Begin adding types, starting with redus-store/metaMetaMeta 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./actions. (32855)
Unit control Utils: Update JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. documentation and add basic test coverage. (32774)
Promote lint rule to error when validating store string literals. (32537)
Cleanup PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Codesniffer warnings and enable fail. (26516)
Data: Handle context state updates in core-data reducer on edits. (32991)
APIs: Remove deprecated APIs that are no longer supported in version 11.0. (33258)
Add getCurrentUser() to e2e test utils: , and use it for user switching. (33050)
Fix WP editor metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. e2e test. (32915)
Fix failing PHPUnit test caused by changes in WP core. (32888)
Fix eslint-import resolver with extraneous dependencies. (32906)
Scripts: Update lint-md-docs script to use ignore-path. (32633)
Workflows:
Recursively clear node modules when building for ci. (32856)
Allow point releases after a new RC is out. (32560)
Performance
Add in memory cache for rich link previews data. (32741)
Experiments
Navigation Block and Editor:
Update the function name and correct the comment. (32918)
Correct the case of navigation __unstableLocation. (32783
Navigation block: Add an unstable location attribute. (32491)
Avoid double encoding of URLs in Navigation Link block. (32840)
Site Editor:
Fix logic error on site editor useSetting. (32793)
Fix oEmbeds not working in block template parts. (32331)
Performance Benchmark
Due to an ongoing issue with the benchmark tests details on the performance of Gutenberg 11.0 are currently delayed. They will be published here as soon as they become available.
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 11.0
4.82s
29.82ms
Gutenberg 10.9
4.69s
29.54ms
WordPress 5.7
5.51s
29.79ms
Kudos to all the contributors that helped with the release! 👏
Two weeks have passed since the last GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, which means the time has come for a new version. Gutenberg 10.9 introduces rich URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org previews for Link Control, the ability to expand/collapse nested blocks in List View, and a new name for the Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. — Post Template. The release also includes enhancements and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes for Widgets Editor.
Rich URL Previews
When clicking on links in the editor, it’s now possible to see a rich preview of a URL including site title, meta description, icon and image. This is the first feature to take advantage of the new `url-details` endpoint, the enhanced form of which was shipped in 10.8. Currently, rich previews are only enabled for links which point to external URLs and then only for rich text blocks that utilize the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. link format library. In the near future however, we expect to extend this to provide previews of internal URLs and to roll out support to more areas of the software.
List View Enhancements
This release brings a new feature to the List View. It’s now possible to expand and collapse nested blocks, which helps users navigate complex block structures. For example, users can collapse the content in sibling columns to concentrate on that hierarchy level and expand a single column to focus on it.
A new home for the Block Manager
The Block Manager has been moved from the Tools menu, and is now integrated with the new Preferences modal under the Blocks section, consolidating all editor-related preferences in the same modal.
Updated template creation modal
This modal has been polished, including an improved welcome guide, to make creating new templates a breeze.
Renamed Query and Query Loop blocks
With the Query and Query Loop blocks becoming stable and coming to WordPress 5.8, they have been renamed to increase clarity about their functionality. The Query Loop block has been renamed to Post Template to better represent its purpose within Query, whereas the Query block label now refers to it as Query Loop.
10.9
Enhancements
Components:
UnitControl: Reduce code duplication for defined units. (32731)
BoxControl: Add support for grouped directions (vertical and horizontal controls). (32610)
Notice: Added onDismiss option in createInfoNotice. (32338)
Block Library:
Latest Posts: Limit latest-post authors dropdown to users with published posts. (32662)
Heading: Show all heading levels in toolbar group. (32483)
Post Terms: Add a CSSCSSCascading Style Sheets. class to identify the taxonomyTaxonomyA 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.. (31832)
Legacy WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.: Move block to @wordpress/widgets. (32501)
Block Editor:
Enhance link control UIUIUser interface with rich URL previews. (31464)
List View: Allow expanding and collapsing of nested blocks. (32117)
Editor Breadcrumb: Add a rootLabelText prop. (32528)
Refactor LinkControl component to support ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. 17. (32552)
Remove snapshots from tests for LinkControl. (32592)
Block Support:
Update border support to allow non-pixel units. (31483)
Inserter: Fix insertion point displaying when there are no inserter items. (32576)
Drop indicator: Show around dragged block and show above selected block for file drop. (31896)
Fix vertical scroll in horizontal toolbar. (32655)
Fix block multi selection in nested blocks. (32536)
Fix block toolbar overlap with headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (32424)
Blocks:
Avoid keeping the same client ID when transforming blocks. (32453)
Allow themes to add inline styles for all blocks when using lazy styles loading. (32275)
Decode HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. entities for name and description props. (32503)
Don’t show widgets in menu without theme support. (32420)
Fix inspector opening on click outside widget area. (32450)
Legacy Widget: Don’t display “No preview” when widget has image tags. (32605)
Post Editor:
Prevent locking users in saving state when saving metaMetaMeta 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. boxes fails. (32485)
Header Toolbar: UseCallback to avoid unnecessary rerenders. (32406)
Experiments
Component System:
Promote Scrollable component to a full export. (32446)
Promote Surface component to a full export. (32439)
Global Styles:
Allow presets to provide an empty set of values. (32679)
Allow theme authors hook into the preset classes generated by global styles. (32627)
Update WP_Theme_JSONAPIAPIAn 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. so presets are always keyed by origin. (32622)
Make syntax errors in theme.json visible to users. (32404)
Enqueue global styles in editor only once. (32377)
Enqueue core and theme colors by using separate structures per origin. (32358)
Do not migrate the old typography support if core already did it. (32487)
Generate classes and custom properties for global styles in the same way the post editor does. (32766)
Full Site Editing:
Template resolution for new posts and pages. (32442)
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party:
Copy wp_should_load_separate_core_block_assets function from core. (32611)
Fix the add milestone githubGitHubGitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ action. (32691)
Use a different cache key for the PR automation workflow. (32588)
Improvements to NPM package caching across workflows. (32458)
Limit when release artifacts are built on forks: Pt. 2. (32494)
Build:
Load .min.js files even in dev mode, output unminified assets only in prod. (32621)
Upgrade husky package to the latest version. (32077)
Generate minified .min.js and unminified .js files for GB js entry points when building. (31732)
Include Legacy Widget block files in the plugin build. (32803)
End to End Tests:
Update mentions tests to use toMatchInlineSnapshot. (32727)
Add more user auto-completer (mentions) coverage. (32697)
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 10.9
4.50s
28.93ms
Gutenberg 10.8
4.91s
30.30ms
WordPress 5.7
5.71s
32.09ms
Kudos to all the contributors that helped with the release! 👏
Two weeks have passed since the last GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release, which means the time has come for a new version! Gutenberg 10.8 focuses on stability and performance, while also introducing enhancements to the Template Editor and enables more design tools for blocks, among many other things!
Performance Improvements
This release puts a focus on performance by providing iterative improvements. For instance, Gutenberg now allows passing of __experimentalLayout to a memo’d object so re-renders are not triggered when layout data doesn’t change. Thanks to this, blocks like BlockList don’t need to re-render so often, optimizing the editor performance.
More BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Design Tools
Add Letter-spacing and enable this for site title and site tagline. (31118)
Block Supports: Allow skipping spacing support serialization. (31973)
Reusable Block:
Add Convert to Regular Blocks button to ellipsis Dropdown. (32310)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.:
Improve parsing and retrieve additional data in REST url-details endpoint. (31763)
Template Editing Mode:
Don’t display snackbar with the Welcome Guide. (32076)
Update the appearance of the template details popover. (32042)
Update the title area in the template editor. (32037)
Block-based Widgets:
CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.:
Add preferences menu group label to widgets and customize widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. editor. (32259)
Display wide widgets as popovers in Customizer. (31736)
Editor:
Link to widgets.php instead of themes.php?page=gutenberg-widgets. (32299)
List Block: Fix theme.json styles for the core/list block. (32343)
Latest Posts: Limit latest posts featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. width to 100%. (32245)
Legacy Widget Block:
Fix legacy widget block preview iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.. (32300)
Fixed Random Collapse of Colors Setting Section. (32388)
Block Toolbar:
Always close the options menu after toggling the sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (31921)
Fix toolbar alignment in widget block editor. (31991)
Iframe: Fix embed dimensions with missing wp-embed-responsive class. (32057)
Fix collapsing regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. of Navigation MenuNavigation MenuA theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site.. (32081)
Lock the document from scrolling when the modal is open. (32269)
Refactor Navigation block paddings/margins to inherit global styles. (31878)
Editor:
Allow block attributes passed to block renderer by way of wp_nav_menu. (31911)
Update iOSiOSThe operating system used on iPhones and iPads. Simulator device command in ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Native documentation. (32383)
Packages:
Navigation Editor: Augment and improve Nav Editor (and block) documentation. (31891)
Components: Fixed documentation for units attribute in Unit Control. (31901)
Remove usages of withState from edit-post and editor. (32349)
Block Library:
List View: Simplify the BlockNavigation component. (31290)
Navigation: Simplify htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. selector in nav burger menu. (32303)
Remove “class=” wrapper to already wrapped attributes. (29214)
Blocks Package: Make getBlockSupport support any lodash path.. (32322)
Block Supports: Avoid a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Notice when render_block() is called without attributes. (32135)
Components:
Button: Deprecate isPrimary, isSecondary, isTertiary and isLink props in favour of variant prop. (31713)
Rename ViewOwnProps to PolymorphicComponentProps. (32053)
Require explicit children prop for all components. (31817)
UIUIUser interface Context: Delete unused types from context. (32254)
UI Popover: Remove unused content property from types definitions. (32049)
Compose:
Add types to useRefEffect and clipboard hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (31603)
Simplify compose function documentation and point to lodash documentation for it. (32324)
Global Styles:
Avoid enqueuing global styles twice when running on WordPress 5.8. (32372)
Keyboard Shortcuts:
Multi select: select all: Restore ref callback. (32318)
Linting:
Fix eslint warnings in the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-data package. (32198)
Fix eslint warnings in the edit-navigation package. (32196)
Fix eslint warnings in the edit-post package. (32195)
Fix eslint warnings in the edit-site package. (32156)
Fix eslint warnings in the edit-widgets package. (32155)
Fix eslint warnings in the editor package. (32153)
Run suite atop latest stable major WordPress version. (32244)
Use latest WP branchbranchA 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". for release tests. (32277)
Move the Query and PostTitle end-to-end tests out of the experimental directory. (31691)
Multi select: Add end-to-end test for gruadual select all. (32304)
Remove redundant widget APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. endpoint tests. (32298)
Skip tests that are failing with the latest WordPress core. (32228)
Eslint: Ignore some eslint rules in react-native folders. (32143)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 10.8
5.78s
42.03ms
Gutenberg 10.7
6.75s
41.96ms
WordPress 5.7
6.95s
42.81ms
Kudos to all the contributors that helped with the release! 👏
Thanks, @ntsekouras for managing the release and @priethor for helping and guiding me with the release post.
We are already at the end of May and, after making it through the WordPress 5.8 feature freeze, a new GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ version is among us! Version 10.7 represents the last Gutenberg release that will be included in the upcoming WordPress 5.8, so efforts have been focused on bringing forward many of the features that will be included in it. Gutenberg 10.7 introduces new features like the persistent List View in the Post Editor, responsive navigation menus, many design tools for blocks, and enhancements to the top toolbar, as well as iterative performance improvements and a lot of bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes.
Persistent List View in the Post Editor
Before Gutenberg 10.7, the List View available in the Post Editor was displayed in a popover and would close after focusing somewhere else on the page. Starting with Gutenberg 10.7, the persistent List View previously available in the Site Editor is enabled in the Post Editor as well, providing a sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. that displays a full post blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. tree. This List View also provides some visual cues as it highlights the currently selected block(s), as well as accents in the canvas the corresponding block when hovering over the list entries. Moreover, anchors added to blocks are displayed in the list, providing a comprehensive view of the post hierarchy and structure. All these improvements combined will make navigating complex content much easier!
Responsive Navigation block
This release introduces the first iteration of responsive menus in the Navigation block. By introducing the new “Enable responsive menu” block option, the Navigation block will collapse into a so-called “Hamburger menu” when displayed on smaller screens. This implementation also prioritizes accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) by providing a fully keyboard-navigable menu.
The “Top toolbar” mode’s behavior and placement have been refined in this release so that wider screens won’t display the editor bar and the block toolbar together anymore, improving the user experience. Now when enabled, the top toolbar has a fixed position stacked on top of the canvas, below the editor top bar, independent of the browser width. Furthermore, implementers will also benefit from this iteration unifying toolbar APIs under one simple <BlockTools /> component.
Loading patterns from the Pattern Directory
Working towards providing rich collections of block patterns from the inserter, patterns can now be inserted directly from the WordPress.org Pattern Directory, in a similar way blocks can. This integration opens the door to an exciting future full of beautiful patterns as the number of patterns available in the directory grows. If you want to know more, you can stay tuned for Block Pattern Directory updates and check the most recent design iterations for the Pattern Directory.
Post Comments: Add basic CSSCSSCascading Style Sheets. to the block. (30382)
Post ExcerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox.: Update read more placeholder text. (30959)
Post Featured ImageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Change wrapper element to figure. (31595)
Display block anchor in List View when set. (31992)
Enable persistent List View in the post editor. (31047)
Patterns: Load patterns from wordpress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. (28800)
Template Editing Mode:
Add a welcome guide to the template editor. (31330) (32055)
Babel Preset Default: Add polyfill for WordPress built from coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-js. (31279)
Bug Fixes
Block Library:
Cover:
Remove fixed background when previewed in patterns list. (31640)
Show placeholder only if it has no inner blocks. (31402)
Fix identical images getting duplicated when moving. (30555)
Image:
Remove figure margins consistently in image blocks. (31650)
Fix cover transform and excessive re-rendering. (32102)
Post Content: Apply the_content filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. even if content is empty. (31997)
Post Comments Count: Fix attributes declaration. (31976)
Fix to allow post comment button to inherit button & global styles automatically. (31338)
Post Featured Image:
Fix non-interactive placeholder when outside of a post context. (31663)
Fix placeholder regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.. (31709)
Only request media entity when a site logo has been chosen. (31673)
Template Part:
Don’t show the currently used template part as an option in the ‘replace’ flow. (31720)
Fix template part selection searches to use title/area instead of slug/theme. (31520)
Use label and icon per variation when displaying placeholders. (31721)
Block Editor:
Clear selection on iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. element click, fix bottom click redirect. (31385)
Fix block ref when multiple useBlockProps hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. are called. (31906)
Post Editor: Fix template name displaying incorrectly. (32035)
Server Side Rendering: Re-enable passing post_id query arg (#31786). (31787)
Template Editing Mode: Fix wrapper block name for template mode. (31985)
Writing flow, multi-selection:
Fix caret placing when the target is out of view. (31506)
Gradually ‘select all’ layers of nested blocks. (31859)
Fix errors caused by commits to WordPress core. (32176) (32183) (32059)
Components: Fix the list of package dependencies. (32167)
Fix issue with customizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. title overlapping block toolbar. (32140)
Correctly read rawRequest for frontend ESM. (31917)
Fix generation of presets classes per block. (32190)
WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. Screen:
Theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.: Replace hardcoded CSS_UNITS and inherit units from theme.json. (31822)
Full Site Editing:
Template Loader: Make templates arg required. (31671)
Add dedicated Block Styles page under Block API directory. (31055)
Add info on how to connect to the WP ENV MySQLMySQLMySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. database. (31975)
Capitalize GitHubGitHubGitHub is a website that offers online implementation of git repositories that can 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/ properly in contributors README. (31549)
Clarify ‘Applying styles from a stylesheet’ how-to guide. (31824)
First pass at the documentation for the Widgets Block Editor. (31577)
Remove tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) name dependency. (31679)
REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: Use batch endpoint included in Core. (32174)
Prepare for adding the Widgets block editor to Core. (32136)
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: Update block editor settings to work with context. (32159)
Fix intermittent failure of rich text end-to-end test. (31864)
Increase test coverage for pattern transforms. (31689)
Navigation: Add unit tests for onChange handler and fix cases around custom links tags and post-format. (31259)
Remove i18ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. filters performance test. (32028)
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Version
Loading Time
KeyPress Event (typing)
Gutenberg 10.7
5.28s
28.4ms
Gutenberg 10.6
5.51s
26.18ms
WordPress 5.7
5.35s
29.19ms
Kudos to all the contributors that helped with this huge release! 👏
You must be logged in to post a comment.