The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-newtagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) are posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.
Typography and Spacing support was added for blocks like AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name., Buttons, Categories List, Comments Links, Latest Posts, Navigation, Query Pagination Links, Social Icons, etc.
This improvement allows users to customize their site more without dealing with CSSCSSCascading Style Sheets..
Better content locking experience
Duotone filters, 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. alignment and resizing are now disabled on content-locked blocks.
Navigation Block improvements
The menu selector moved from the Navigation block toolbar to the new “Menu” section in the inspector 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.. In this new section, you can now quickly access all the menus you have created through the “Manage menus” button.
Before this release, when importing a classic menu, Gutenberg automatically transformed it into a block menu and then updated the user site 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.. From now on, you will have to first save your changes in order to show the imported menu. If you don’t, the site will keep displaying the menu that you had used before importing the classic menu! This provides a better user experience as the menu is only changed when the user explicitly saves the template.
The navigation block keeps iterating on its user experience. All feedback is welcome!
Zoomed-out view in the site editor (experimental)
This feature provides a zoomed-out view in the site editor, allowing you to focus on site building rather than the details of each granular block.
When in this mode, the users will have a quick overview of their site without having to scroll or using the native browser zoom-out function. Also, navigation between areas becomes easier with this new enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature..
This feature is still experimental so users have to enable it in “Experiments” under the “Gutenberg” menu item. If you want to explore using it, join this call for testing for the FSE Outreach program and start providing feedback!
Improving the theme developer experience
Box-shadow support included 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.
From now on, it won’t be necessary to use CSS to add box-shadow properties to the blocks, you can use theme.json to achieve this. Here’s an example of how to do this:
In color section, add a new property shadow to any block.
Classic themes can now add support for block-based template parts, allowing users to build more parts of their site with blocks without fully switching to a block theme. The theme author can enable it by using the add_theme_support( ‘block-template-parts’) function.
Once enabled, a new “Template Parts” menu is visible under “Appearance” which displays the list of the template parts available for that theme.
Let’s use an example: If theme authors want the site footer to be editable using blocks, they have to create a file called footer.htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. and save it inside their name_of_the_theme/parts/ directory. To use it on the front end, they need to call the block_template_part PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher function wherever they want to use a template part in their theme. In this case, it could be a footer.php file:
<?php block_template_part( 'footer' ); ?>
And that’s it! They can now update their footer in the Site Editor as if it were a block theme.
Gutenberg 14.1 includes four filters to edit the global styles data in PHP.
global_styles_default => to 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. data provided by CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress..
global_styles_blocks => to filter data provided by the blocks (only styles so far).
global_styles_theme => to filter data provided by the theme.
global_styles_user => to filter data provided by the user.
Some use cases will now become much easier:
Providing settings dynamically. For example, color presets depending on some contextual information.
Allowing plugins to modify the existing data.
Editing or removing core data by code (color presets, etc).
Multi-selection feature now has a smoother experience by preventing some flashes of the block outline when you select between blocks or placeholders.
Better block transforms organization
Paragraph, heading, list and quote are now shown in a separate menu subgroup. This way, they are easier to find as those are the most used transformations.
Changelog
Features
Block Library
Add select icon for Navigation Block’s menu button. (43674)
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.: Add missing typography supports. (43341)
Query No Results: Add typography supports. (43551)
Cover Block: Keep the inner contents in a physical direction even in RTL languages. (43663)
Create classic navigation menus as draft and dirty the site editor. (43580)
File: Display upload error notices using snackbars. (43893)
Gallery: Display upload error notices using snackbars. (43946)
Image: Display transformation error notice using snackbars. (44031)
Improves the UXUXUser experience of menu management in the navigation block. (42987)
Mark which attributes of the video should be considered content. (44038)
Media & Text: Display upload error notices using snackbars. (43890)
Navigation: Add overlay close button to icon toggle control. (43067)
Navigation: Set the icon control to full width. (43844)
Navigation: Try adding minimal animation to overlay. (43851)
Navigation: Try making it possible for themes to have the X overlay the = icon. (43576)
Navigation: Update to use translate instead of top. (44082)
Prevent single Columns blocks transforming into Columns. (43641)
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Add allowedControls in block variations for better extensibility. (43632)
Query Loop: Pass extra query args in 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/. call for accurate preview for extenders. (44093)
Quote: Restrict single block transforms to specific blocks. (44106)
Update: Add __experimentalRole attributes to media text block. (43957)
Video: Display upload error notices using snackbars. (43892)
Components
Add contextConnectWithoutRef() to bypass ref forwarding. (43611)
AlignmentMatrixControl: Keep the physical direction in RTL languages. (43126)
ColorPalette: Make popover style consistent. (43570)
DropdownMenu: Use KeyboardEvent.code, refactor tests to model RTL and user-event. (43439)
GradientPicker: Show custom picker before swatches. (43577)
Guide: Use code instead of keyCode for keyboard events. (43604)
NavigableContainer: Use code instead of keyCode for keyboard events. (43606)
Post type restriction 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. for patterns. (41842)
Global Styles
Added outline support for blocks via theme.json. (43526)
Block Spacing: Using spacing controls for block gap values to support presets in the UIUIUser interface. (43466)
Add box-shadow support for blocks via theme.json. (41972)
Block-based template parts for Classic themes. (42729)
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. block: Enable gradient overlay. (43838)
New archive-$postType templates get proper fallback content. (43603)
Template for specific categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.: Only load posts from that category in post template block. (43699)
New APIs
Block Library
Add filter for inner blocks in the Navigation block. (37998)
Make it possible to import individual blocks. (42258)
Extensibility
Add a filter to build_query_vars_from_query_block. (43590)
Block API
Blocks: Add new render field to block.json. (42430)
File Block: 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. from save function. (43050)
Navigation: Add current-menu-item also for archive links. (43800)
Navigation: Hide overlay preview settings when the overlay is off. (44032)
Navigation: Remove unneeded gap:Inherit rule on wrapper element of navigation block. (43669)
Post Terms: Use unbound query in the usePostTerms hook. (43501)
Site Logo: Fix border radius 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.. (43701)
Fix embed 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. sizing issue. (40213)
Update: Make it possible to change list items even if parent is template locked. (43959)
Fix the horizontal block list drop indicator when dragging to the start. (43944)
Fix: Block styles preview is not displayed. (43837)
Fix: Non boolean usage on reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. output. (43919)
hasContentRoleAttribute: Check that block type exists. (43864)
Spacing presets: 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 unlinked not applying if non int slugs used. (44136)
Design Tools
Fix display of width controls for legacy layouts. (43688)
FontFamily: Fix server-side attribute registration via typography support. (43937)
Layout: Fix blockGap output when using a falsy 0 value. (43757)
Layout: Fix toggling off inner blocks content width setting for legacy markup. (43888)
Testing
Fix asserting Post Format without opening the document settings sidebar. (43710)
Fix clicking on top of the publish panel in 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. box end-to-end test. (43708)
Fix playwright’s openDocumentSettingsSidebar util not opening the sidebar. (43506)
Style Variations
Styles API: Fixed selectors for nested elements. (43988)
Typography
Font size picker: Add a fallback for the name property. (43794)
Fix the style settings from core/post-content block in theme.json that are not applied in the editor. (42270)
Site Editor
Site Editor: Fix focus outline cut off in code editor. (42980)
Templates API
Block Templates: Add the custom templates info for the template posts. (43597)
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)
Better handling of loading states for navigation selector. (43904)
Limit contrast checker to only blocks that have at least one color defined. (43592)
Performance
Block Library
Comments Pagination: Avoid creating a new allowedBlocks array on every render. (44021)
Lodash: Refactor away from _.first() and _.last(). (43894)
Lodash: Remove _.omit() from block library. (43707)
Query Pagination: Avoid creating a new allowedBlocks array on every render. (44020)
Updated the “Create your First App with Gutenberg Data” how-to guide. (43633)
Add select icon for Navigation Block’s menu button. (43674)
Style engine: pre-core migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. documentation and house keeping. (43840)
Fix JSON syntax issues in theme.json examples. (43828)
Remove leftovers from previous iterations in block inspector. (43806)
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
ListViewBlock: Refactor to have locking data in a single place. (43803)
npm Packages
Block Serialization Default Parser: Include TypeScript type declarations. (43722)
Lodash: Remove _.omit() from wordpress/blocks. (43711)
Lodash: Remove completely from wordpress/format-library package. (43738)
Lodash: Remove completely from wordpress/i18n package. (43677)
Lodash: Remove completely from wordpress/redux-routine package. (43741)
wordpress/date: Rename __experimentalGetSettings() to getSettings(). (43884)
Global Styles
Elements: Check value and whitelist before building style nodes. (43622)
Prepare WP_Theme_JSON_Data class for backporting. (44109)
Safeguard for backportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. of get_template_hierarchy function. (44085)
Format Library: Remove redundant inline link test. (43912)
Layout: Unit tests for gutenberg_get_layout_style. (44006)
Block Editor
Rich text: Remove unused unstable list functions. (43614)
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.
Post Editor
Version
Time to first block
KeyPress Event (typing)
Gutenberg 14.0
6.9s
33.5ms
Gutenberg 14.1
7.6s
28.39ms
WordPress 6.0
1.5s
41.03ms
Site Editor
Version
Time to first block
KeyPress Event (typing)
Gutenberg 14.0
8.4s
25.1ms
Gutenberg 14.1
9,9s
29.03ms
WordPress 6.0
3.26s
13.11ms
Contributor Props
The following contributors merged PRs in this release:
You must be logged in to post a comment.