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.
Gutenberg 14.0 is now available to download in the WordPress 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 repository. It’s full of enhancements, including extra blocks supports in the UIUIUser interface that were only available via 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. before, a revamped List blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience., and much more.
Over 50 people contributed to this packed release (over 260 PRs!), 5 of them as first-time contributors.
After the Gallery block and the Quote block, it is the List block’s turn to get a new makeover and leverage inner blocks. Now your list items can be easily sorted and indented with a much-improved user experience.
Add axial gap control to Styles
Now users have the ability to adjust axial (vertical and horizontal) block spacing using the Styles UI for those blocks that support it.
Pseudo-elements supports on button elements
After first introducing the ability to control hover/active/focus states for links using theme.json, this option has been extended to button elements (this includes blocks that include such elements, like button, file, and search). Now you can style those states easily, including something like this in your theme.json file:
Appearance tools available for opt-in via theme supports
Until now, only themes leveraging theme.json could opt-in to use Appearance tools. Now any theme can simply include in their functions.php file:
add_theme_support( 'appearance-tools' );
and it will support border styles, link color, spacing (blockGap, margin, padding), and line height.
14.0
Enhancements
Add optional capture group to URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org regex in wp-env. (43200)
CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Add canRead to useResourcePermissions. (43484)
Element: Remove enzyme from platform test. (43531)
[Create-block] Add --variant flag to allow creation of different block type variants. (41289)
[Create Block] Adding a --no-plugin flag to scaffold only block files. (41642)
Customize widgets: Fix top contents cutoff in keyboard shortcuts. (43391)
Design Tools
As part of the effort to improve design tool consistency for typography and spacing on blocks (43242), there’s been a lot of work done to blocks during this release to add missing supports to them.
Gallery: Add background color block supports. (43294)
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.: Add border support applied to inner img. (42847)
Social Links: Enable alpha on color pickers. (43453)
Social links: Add background color block supports. (43293)
Table of contents block: Add color block supports. (43363)
Components
(Custom)SelectControl: Refresh and refactor chevron. (42962)
Always use screen for testing-library queries. (43152)
Autocomplete: Use KeyboardEvent.code instead of KeyboardEvent.keyCode. (43432)
ComboboxControl: Normalize hyphen-like Unicode characters to ASCII hyphens when matching search queries. (42942)
CustomGradientPicker: Use KeyboardEvent.code instead of KeyboardEvent.keyCode. (43437)
DateTimePicker: Replace reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-dates and moment with useLilius and date-fns. (43005)
FocalPointPicker: Use KeyboardEvent.code, partially refactor tests to modern RTL and user-event. (43441)
FontSizePicker: Add a flag to remove bottom margin. (43062)
FormTokenField: Add the ability to auto-select first matching suggestion for incomplete token. (42527)
FormTokenField: Use KeyboardEvent.code, refactor tests to model RTL and user-event. (43442)
Modal: Use code instead of keyCode for keyboard events. (43429)
Popover: Move eslint-disable comment to the correct deps array. (43320)
ToggleGroupControl: Improve styling for icon options. (43060)
Block Library
Add a setting to hide the prefix in the archive title. (42594)
Use page list instead of placeholder as fallback. (42735)
[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.]: Honour intended post type when previewing patterns and when replacing them with patterns. (43285)
List v2: Copy list wrapper when copying list items. (42860)
Navigation: Page List fix missing padding. (43358)
Prevent query block from looping in classic themes. (43221)
Pullquote block: Avoid text-align settings affecting block width and font size. (43188)
Pullquote block: Remove font definition from the default block styles. (43195)
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.-controls.js: Change REST context to “view” when fetching taxonomy terms. (43274)
Social Link: Fix background color on WhatsApp icon. (43683)
Components
(Custom)SelectControl: Truncate long options. (43301)
AlignmentMatrixControl: Fix widthbugbugA 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.. (43482)
ColorPalette, GradientPicker: Fix color picker popover positioning. (42989)
ColorPalette: Make sure “key” is unique when iterating over color entries with the same value. (43096)
Dropdown: Anchor popover to the dropdown wrapper (instead of the toggle). (43377)
Fix block toolbar offset in site editor when toggling sidebars. (43172)
Fix popover glitch that results in incorrect toolbar positioning in site editor. (43267)
Improve appearance of controls in the Global Styles Typography panel. (43304)
Popover: Fix and improve opening animation, use framer motion. (43186)
Popover: Make sure offset middleware always applies the latest frame offset values. (43329)
Refactor Guide tests to @testing-library/react. (43380)
Global Styles
Check for recursive dynamic reference in the site editor. (43166)
Duotone: Prevent early return blocking other style generation. (43300)
Fix dynamic references on the site editor. (42976)
Fix error in handling spacing preset slugs. (43237)
Layout: Re-instate alignwide and alignfull in flow layout get alignments. (43502)
Spacing presets: Fix/minor issues noted in initial UI PR. (43214)
Layout: Fix has-global-padding classname for constrained layouts without contentSize. (43689)
Border Radius: 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. css unit only styles or empty radii style attribute. (42409)
Border Support: Fix disabling of border style control. (43109)
Post Comments Count: Prevent text-decoration from affecting warning. (43497)
Site Editor
Do not show scrollbar when toolbar overflows the editor wrapper. (43332)
Fix template part focus mode resizable editor height. (43408)
npm Packages
Jest Preset: Ignore is-plain-obj transformation. (43179)
Jest Preset: Improve is-plain-obj transformation ignore. (43271)
Widgets Editor
Fix 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 positioning in 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.. (43297)
CSS & Styling
Group/Stack/Row: Scope the dashed placeholder rules. (43169)
List View
Ensure long anchors don’t cause the List View to extend. (43134)
Post Editor
Post Template: Don’t fetch settings and templates for non-adminadmin(and super admin) users. (42845)
Patterns
Fix custom placeholder not displaying on subsequent Paragraph blocks. (42519)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Block Editor: Remove aria-selected from LinkPreview. (43279)
Block Editor: Replace aria-owns with aria-controls in URLInput. (43278)
Separator: Disable the contrastChecker via block.json. (43357)
Fix Top toolbar buttons tooltips and style when ‘Show button text labels’ is enabled. (42815)
Performance
Lodash is known to unnecessarily inflate the bundle size of packages, and in most cases, it can be replaced with native language functionality. See these for more information and rationale: (16938, 17025, 39495)
Convert HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. to Markdown in changelog for 13.9. (43324)
Handbook: Fix format 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. example link. (43477)
Stabilize the useResourcePermissions hook. (43268)
[Docs] Replace useState with edit in useEntityRecord usage examples. (43270)
Block Editor Handbook: Added missing codetabs end marker. (43185)
Block list: Update block list view preferences name for consistency. (43494)
Widgets Editor
Use useResourcePermissions in block-library and the widgets editor. (43305)
Block Editor
Rich Text: Eliminate second scan when getting text content. (43207)
Global Styles
Theme_JSON: Use existing append_to_selector for pseudo-elements. (43167)
Enable appearance tools via theme_support. (43337)
Testing
Migrate wp editor 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 test to Playwright. (41519)
PHPCSPHP Code SnifferPHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS.: Exclude PHPUnit tests from file and class name sniffssniffA module for PHP Code Sniffer that analyzes code for a specific problem. Multiple stiffs are combined to create a PHPCS standard. The term is named because it detects code smells, similar to how a dog would "sniff" out food. (for Core parity). (43131)
PHPUnit: Let PHPUnit Polyfills match PHPUnit version. (43334)
PHPUnit: Turns on PHP notices and deprecations. (43102)
Update incorrect quote end-to-end test snapshot. (43407)
Group block: Update description to remove “layout.” (43498)
Image: Try different resting state for placeholder, alternate version. (43180)
Navigation: Try to improve the appender in an empty block. (43115)
Polish placeholder radius and enable duotone on image setup state. (43425)
Pullquote: Use inline rich text instead of multiline. (43210)
[Blocks] Paragraph and Heading: Add gradient support. (43119)
Patterns
Bundle new collection of 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 Footer block patterns. (43157)
Mark which attributes of the image should be considered content. (43280)
Prefer _x() for 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. context in core patterns. (43409)
Design Tools
Add margin and padding supports to Audio block. (43351)
Add margin/padding support to Archives block. (43350)
Merging blocks: Allow x to be merged into wrapper blocks (quote, list, group…). (42780)
Tools
Testing
Refactor Button tests to @testing-library/react. (42981)
Refactor GuidePageControl tests to @testing-library/react. (43148)
Refactor MenuGroup tests to @testing-library/react. (43275)
Refactor withSpokenMessages tests to @testing-library. (43273)
Editor: Refactor PostAuthorCheck tests to @testing-library. (43176)
Editor: Refactor ThemeSupportCheck tests to @testing-library/react. (43532)
Editor: Refactor a few component tests to @testing-library/react. (43376)
Components: Refactor Placeholder tests to @testing-library/react. (43069)
Components: Refactor Tooltip tests to @testing-library/react. (43061)
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.
Post Editor
Version
Time to the first block
KeyPress Event (typing)
Gutenberg 14.0
9.99 s
43.36 ms
Gutenberg 13.9
3.95 s
54.77 ms
WordPress 6.0
4.31 s
59.53 ms
Site Editor
Version
Time to the first block
KeyPress Event (typing)
Gutenberg 14.0
11.45 s
34.75 ms
Gutenberg 13.9
5.17 s
29.37 ms
WordPress 6.0
4.92 s
20.11 ms
Contributor Props
The following contributors merged PRs in this release:
You must be logged in to post a comment.