The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
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:
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 RCrelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 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! 👏