A Week in Core – February 26, 2024

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

  • 53 commits
  • 100 contributors
  • 73 tickets created
  • 5 tickets reopened
  • 71 tickets closed

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

Code changes

Build/Test Tools

  • Bump the Node.js version for Codespaces – #60555
  • Fix docblocks in a couple of test files to use two asterisks – #60513
  • Revert r57684#59647
  • Update JSHint config to remove deprecated options – #28236
  • Mock APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. response in PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Dependencies tests – #59647
  • Query mariadb.org instead of mariadb.com in README test – #59647
  • Synchronize Theme.JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. between Core and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/#60387
  • Use assertSame() in WP_REST_Navigation_Fallback_Controller tests – #59655
  • Use assertSame() in comment_exists() tests – #59655
  • Use assertSame() in new_admin_email_subject filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. test – #59655
  • Use assertSame() in wp_insert_post() tests – #59655
  • Use assertSame() in wp_read_image_metadata() tests – #59655

Bundled Themes

  • Twenty Twenty-Three: Update XX-large font-sizes for accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)#58603

Coding Standards

  • Fix alignment in tests – #34668
  • Correct alignment in wp_get_attachment_image_src()#59650

Docs

  • Add a @since note for $preferred_ext parameter in wp_mime_type_icon()#31352
  • Correct the URLs that document the available images for MySQLMySQL MySQL 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/. and MariaDB for the local development environment – #59930
  • Improve docblockdocblock (phpdoc, xref, inline docs) for $x_redirect_by param in wp_redirect()#60209
  • Use more inclusive term in rest_filter_response_fields docblock – #59651

Editor

  • Add fallback for blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. version when registering block script module – #60233
  • Add id to the supported Image’s binding attributes – #60577
  • Allow symlinks in directories provided to get_block_asset_url()#59175, #58525
  • Ensure font collection metadata can be properly localized – #60509
  • Fix instance element styles for links applying to buttons – #60557
  • Format and sanitize font family names according the CSSCSS Cascading Style Sheets. spec – #60537
  • Improve PHPUnit tests for block pattern registration – #59532
  • Load pattern content only when used – #59532
  • Update Packages with the latest bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes for 6.5 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 2 (Round 2) – #60315
  • Update Packages with the latest bug fixes for 6.5 beta 2 – #60315
  • Block HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.: Allow hooked_block filters to return null – #60580
  • Block Hooks: Fix actual/expected order in test assertions – #60506
  • Block Hooks: Introduce a new hooked_block filter – #60574
  • Block Hooks: Make test a bit easier to read – #60580

Export

  • Include featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. for posts or pages – #17379

General

  • Handle missing field in WP_List_Util::pluck() – #59774

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Do not set translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. controller localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. in bootstrap – #59656

Media

  • Ensure wp_mine_type_icon() returns expected file type – #31352
  • Fix broken media modal following [57688]#58973
  • Prevent Media Library sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. from showing with no actions – #58973

Plugins

  • Plugin Dependencies: Remove auto-deactivation and bootstrapping logic – #60457, #60491, #60510, #60518
  • Output plugin card elements in the order they’re displayed – #60488

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Pass correct context to embedded items – #43439

Script Loader

  • Add hooks for script modules and interactivity API only on after_setup_theme#60411
  • Fix small typo in wp_remove_surrounding_empty_script_tags docblock – #60591
  • Inject wp_remove_surrounding_empty_script_tags function name in returned error string using sprintf – #60590

Shortcodes

  • Fix small typo in inline documentation – #60603

Themes

  • Use original template paths when switching blogs – #60290

Toolbar

  • Accessibility: Keyboard navigation for screen readers – #34668, #43633

Upgrade/Install

  • Fix upgrade count decrement on Updates page – #60589
  • Improve plugin install button appearance – #60494
  • Normalize major versions in is_wp_version_compatible()#59448

Props

Thanks to the 100 (!) people who contributed to WordPress Core on Trac: @swissspidy (16), @costdev (8), @joedolson (6), @mukesh27 (6), @joemcgill (5), @youknowriad (5), @gziolo (4), @huzaifaalmesbah (4), @afragen (3), @hellofromTonya (3), @shailu25 (3), @SergeyBiryukov (3), @sabernhardt (2), @afercia (2), @netweb (2), @azaozz (2), @kkmuffme (2), @thekt12 (2), @Ankit-K-Gupta (2), @zunaid321 (2), @antpb (2), @poena (2), @dhruvishah2203 (2), @mmaattiiaass (2), @spacedmonkey (2), @jghazally (2), @audrasjb (2), @aaronrobertshaw (2), @get_dave (2), @scruffian (2), @abletec (1), @Cheffheid (1), @alexstine (1), @sparklingrobots (1), @danieltj (1), @dionysous (1), @jorbin (1), @sessioncookiemonster (1), @wazeter (1), @oglekler (1), @kevin940726 (1), @naoki0h (1), @kirasong (1), @iamarunchaitanyajami (1), @davidbinda (1), @helgatheviking (1), @nendeb55 (1), @mikachan (1), @ryokuhi (1), @sruthi89 (1), @nithi22 (1), @ivanzhuck (1), @ukdrahul (1), @grantmkin (1), @flixos90 (1), @manfcarlo (1), @metropolis_john (1), @jeremyfelt (1), @aristath (1), @billseymour (1), @nateallen (1), @petitphp (1), @duck_ (1), @jane (1), @rcain (1), @smub (1), @batmoo (1), @axwax (1), @creativeslice (1), @dlocc (1), @nacin (1), @wonderboymusic (1), @ganon (1), @hlashbrooke (1), @chriscct7 (1), @fischfood (1), @hifidesign (1), @bosskhj (1), @antonlukin (1), @maxpertici (1), @peterwilsoncc (1), @joshuatf (1), @tomjcafferkey (1), @itschristiandale (1), @mahnewr (1), @rudlinkon, @kraftbj (1), @freewebmentor (1), @ajlende (1), @dennysdionigi (1), @bgardner (1), @westonruter (1), @bernhard-reiter (1), @mamaduka (1), @timothyblynjacobs (1), @dd32 (1), @desrosj (1), @pbiron (1), @nithins53 (1), @kafleg (1), and @vivekawsm (1).

Congrats and welcome to our 14 (!) new contributors of the week: @jghazally, @abletec, @sessioncookiemonster, @wazeter, @iamarunchaitanyajami, @sruthi89, @ukdrahul, metropolis_john, @billseymour, @rcain, @axwax, @creativeslice, @ganon, @hifidesign ♥️

Core committers: @swissspidy (13), @sergeybiryukov (7), @joedolson (6), @youknowriad (5), @costdev (4), @joemcgill (3), @hellofromtonya (3), @bernhard-reiter (3), @audrasjb (3), @gziolo (2), @peterwilsoncc (1), @kadamwhite (1), @johnbillion (1), and @desrosj (1).

#6-5, #core, #week-in-core

What’s new in Gutenberg 17.7? (14th February)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg.

Gutenberg 17.7 has been released and is available for download!

This cycle is packed with enhancements and bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes ahead of the next WordPress 6.5 release. Multiple performance improvements, refinement of the Link Control UIUI User interface, Shadow support for the columns, and image blocks are good examples of what this new Gutenberg release is bringing.

Table of contents

Shadow support for more blocks

The effects panel is now available for the Columns, Column, and Image blocks, allowing users to add shadow effects to them. 

Now, users can effortlessly apply shadow effects to these blocks, building upon the functionality previously exclusive to the Button blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.. This opens up new creative possibilities, empowering designers to improve their layouts directly from the Editor. (57982)

Data views enhancements 

This release marks the continuation of the Dataviews project, which will become a part of WordPress 6.5 for managing patterns and templates. 

The release has introduced the ability to select multiple items on the grid view and execute bulk actions such as reverting user templates or deleting user-created patterns and templates. Together with filters, it makes it possible to quickly revert all user template changes or delete all user-created patterns. 

Additionally, a new primary filter API has been included, allowing main filters to be visible at all times in the UI. This makes it easy to switch between viewing and managing sync or unsync patterns.

This release includes a few enhancements to the Link Control UI. A notable addition to the interface allows the user to insert a new block instead of a link from the context of the Navigation block. Combined with the fixes from #55551, the Navigation block now will work to allow the insertion of third-party blocks, opening a new range of possibilities (57756, 57986, 58744)

Making Font Library ready for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.

The Font Library had some important changes under the hood to prepare for its journey into WordPress Core, including security improvements and standardizing some of the code structure. Some important (and ongoing) accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) improvements came to the Font Library Management UI in the Site Editor.

Other Notable Highlights

  • A proposal has been put forward to include Core blocks in the directory developed within the Gutenberg repository for convenience. Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. would maintain the blocks but would be standalone instead of bundled with the block library. Please contribute to the discussion in the open issue.
  • Drag and Drop has been improved, allowing dragging from the block inserter into template parts (and within) and allowing dragging from the desktop to template parts (58589, 58423)
  • This release also comes packed with a bunch of performance improvements (58356, 58349, 58556, 58372, 58244, 57232, 58575, 58348, 58513, 58245, 58734, 58146, 58355, 58393, 58405, 58354)

Changelog

Full changelog available

Enhancements

  • Improve translators comments for wp.date.setSettings in compat file. (58488)
  • Interactive Template: Use viewScriptModule. (58211)

Components

  • Adding constrainTabbing prop to useDialog hook. (57962)
  • Allow limiting the number of maximum visible Snackbars. (58559)
  • ConfirmDialog: Add __next40pxDefaultSize to buttons. (58421)
  • Expand theming support in COLORS. (58097)
  • FocalPointPicker: Apply modern styling. (58459)
  • Implement Tabs in widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. editor settings. (57886)
  • Implement Tabs in site-editor settings. (56959)
  • Implementing useCompositeState with Ariakit. (57304)
  • InputBase: Add isBorderless prop. (58750)
  • Replace TabPanel with Tabs in the editor Document Overview sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (57082)
  • SearchControl: Refactor to use InputControl internally. (56524)
  • Show borders for disabled secondary buttons. (58606)

Data Views

  • Add outline to template preview in table layout. (58738)
  • Add: Delete bulk action to patterns. (58747)
  • Add: Selection and bulk actions to grid view. (58144)
  • DataViews: Add primary filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. (58427)
  • DataViews: In patterns page, show sync status filter by default. (58367)
  • DataViews: Redesign of filters. (58569)
  • Remove min-width style on table cells. (58204)
  • Update ‘Rows per page’ view option label to account for Grid layout. (58457)
  • Update dataviews search input placeholder. (58742)
  • Update spacing around title in grid layout. (58739)

Interactivity API

  • Add block supports for clientNavigation and interactive properties on block.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. schema. (58132)
  • Image block: Refactor and remove data-wp-body. (58835)
  • Interactivity Router: Fix initial page cache. (58496)
  • Interactivity Router: Move ARIA live region and loading bar to the Interactivity Router. (58377)
  • Limit the exported APIs. (58864)
  • Mark all core block stores as private. (58722)
  • Server Directive Processor for data-wp-each. (58498)
  • Support setting a namespace using a string in data-wp-interactive. (58743)
  • Allow global configs for namespaces. (58749)

Block Library

  • Follow up on the Post navigation link taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. filters. (57949)
  • Home Link: Render Home text if there is no attribute label present. (58387)
  • Organize gallery controls. (58407)
  • Pattern: Use the ‘__experimentalLabel’ method to get a title. (58646)
  • Social Icons: Update Patreon icon. (56951)
  • Try: Disable text selection for post content placeholder block. (58169)
  • Update pattern block copy in light of pattern overrides. (58231)
  • Add shadow support for column, columns and image. (57982)

Global Styles

  • Add style engine support for nested at-rules. (58867)
  • Move Shadow controls to Border panel. (58466)
  • Shadow: Update shadow support to allow explicit skipping of serialization. (58306)
  • Try: Remove shadow preset overflow. (58663)
  • Update return values from getGlobalStylesChanges(). (58707)
  • Add support for transform and letter spacing controls in Global Styles > Typography > Elements. (58142)

Block Editor

  • Drag and drop: Allow dragging from inserter or desktop to template parts. (58589)
  • Drag and drop: Allow dropping within template parts. (58423)
  • Implement “Add block” UI for Nav block Link UI. (57756)
  • Implementing new UXUX User experience for invoking rich text Link UI. (57986)
  • Remove open in new tab from link preview. (58744)
  • Use consistent labels, remove additional settings, and copySmall icon LinkControl. (58183)

Site Editor

  • Apply 40px across summary panel. (58730)
  • Apply custom scroll style to fixed headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. block toolbar. (57444)
  • Improve SiteIcon display and transition. (58472)
  • Only show ‘Back’ button when user came from an editor canvas. (58710)
  • Update “focus mode” to consistently use the Document Bar’s Back button. (58528)

Patterns

  • Add a confirmation dialog when a user tries to delete a synced pattern with overrides. (58796)
  • Add the block name to the pattern content data. (58715)
  • Flash editable block outlines instead of always showing them. (58159)

Design Tools

  • Background image support: Add background position controls. (58592)
  • Tweak metrics and labels for background size controls. (58854)

Post Editor

  • Editor: Limit visible Snackbars from the consumers. (58598)
  • Save entities panel: Update styles. (58706)

Font Library

  • Add sanitize from schema util. (58571)
  • Font Collections: Update registration function signature and add caching. (58363)
  • Font Library: Show ‘Add fonts’ button when there are no fonts installed. (58580)

Inspector Controls

  • Tweak FocalPointPicker inspector controls. (58448)
  • Tweak Media & Text inspector controls. (58447)

Custom Fields

  • Block Bindings: Ensure to pass bound attributes. (58844)

Commands

  • Try debouncing search for post-type navigation. (58810)

Document Settings

  • Tweak revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. panel for improved scanning. (58751)

Synced Patterns

  • Support button’s link settings for Pattern Overrides. (58587)

Block API

  • Block HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.: Set ignoredHookedBlocks metada attr upon insertion. (58553)

List View

  • Add keyboard clipboard events for cut, copy, paste. (57838)

New APIs

Block API

  • Blocks: Add handling for block.json viewScriptModule. (58731)

Bug Fixes

  • Core data: useEntityBlockEditor: Fix parsed blocks cache. (58841)
  • Footnotes: Fix anchor order replacing. (58791)

Block Editor

  • Block Switcher: Use consistent labels. (58240)
  • Don’t move focus within the toolbar if it is already focused. (58570)
  • Don’t show Link preview when no selection. (58771)
  • Fix Link UI popover anchor in rich text. (58282)
  • Fix empty link preview after creating link from empty selection. (58863)
  • Hide the ‘Content’ panel for locked blocks when there’s no content. (58259)
  • ImageURLInputUI: Fix focus loss when settings are changed. (58647)
  • Link UI: Polish lightbox pieces. (58666)
  • Media Replace Flow: Vertically align the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (58621)
  • MediaReplaceFlow: Restore popover width. (58597)
  • Rich Text: Only apply focus to elements, not selection. (58745)
  • Rich text: Preserve white space should strip \r. (58805)
  • Settings may be undefined. (58658)
  • useOnBlockDrop: Fix the Gallery block check. (58711)

Components

  • Add a timezone offset value for display purposes. (56682)
  • Fix Placeholder component padding when body text font size is changed. (58323)
  • Fix URLPopover preview overflow. (58741)
  • Fix the Snackbar auto-dismissal timers. (58604)
  • Popover: Add box-sizing reset style. (58871)
  • Set post editor sidebar tabs to manual activation. (58041)
  • Tabs: Delay activeId updates until focus can be properly detected. (58625)
  • Tabs: Fix infinite loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. in useEffect. (58861)
  • Tabs: Improve Controlled Mode Focus Handling. (57696)
  • Try: Fix lightbox URL popover position. (58600)

Block Library

  • Fix #54352 prevents php 8.1 fatal when template parts are not found in non-debug environments. (54354)
  • Fix Query pagination not working in template parts and patterns. (58602)
  • Fix URL escaping for array parameters in Navigation links. (58068)
  • Fix missing data in email submissions. (55691)
  • Fix: Removing footnotes from the allowed blocks does not remove footnotes. (58855)
  • Navigation Link: Use get_block_type_variations to register variations. (58389)
  • Prevent usage of gutenberg_url in block-library. (58242)
  • Template Part: Reflect name updates without saving changes. (58644)
  • Try: Make gallery randomization work when nested. (58733)

Data Views

  • DataViews: Fix applied default layout props. (58400)
  • DataViews: Fix nested buttons and placeholder text in list layout. (58304)
  • DataViews: Fix some small issues with featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.. (58371)
  • DataViews: Make it possible to toggle Author field in templates and template parts. (58609)
  • DataViews: Remove test artifact (status filter was set as primary). (58682)
  • DataViews: Use chips for filter summary. (58816)
  • Fix double scrollbar in grid layout. (58536)
  • Fix: Dataviews selection on patterns grid view. (58726)

Site Editor

  • Add context for the All translatable string and enforce l10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales. best practices. (58196)
  • Break long URL in page sidebar. (58763)
  • Editor: Fix block context defined for template parts. (58807)
  • Fix line-height in block card. (58246)
  • Hide export button if non-block-based theme. (58346)
  • Mobile site editor header toolbar button bugfix. (58852)

Post Editor

  • Editor: Don’t hide authors’ Combobox if the current author is missing. (58719)
  • Fix permalink input field text overflow ellipsis for Firefox. (57310)
  • Fix the position and size of the Options menu,. (57515)
  • Fix: Use old template panel if user doesn’t have access to view templates. (58485)
  • Template editing: Update fullscreen WP back functionality. (58534)

Interactivity API

  • Add supports.interactivity to the Query block. (58316)
  • Fix state intialization for asynchronous private stores. (58754)
  • Remove non-default suffix data wp context processing. (58664)
  • Use compat versions of HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIs. (58846)

Global Styles

  • Block Styles: Fix block style variation selector generation. (58051)
  • Fix Global styles text settings bleeding into placeholder component. (58303)
  • Global styles revisions: Fix is-selected rules from affecting other areas of the editor. (58228)
  • Site Editor: Prevent classic theme from accessing global style menu. (58345)

List View

  • Fix error when switching between template preview modes. (58533)
  • Navigation Submenu Block: Make block name affect list view. (58296)
  • Template Part: Fix site editor error when loading with list view set to always display. (58868)

Font Library

  • Avoid mutating fontface data. (58473)
  • Avoid running init functions when font library is available in core. (58793)
  • Fix size of demo text. (58849)

Typography

  • Fix font library modal dialog translatable strings. (58256)
  • Font Library: Change referenced tab name on Google Fonts confirmation dialog. (58584)
  • Font size: Allow for custom font size handling. (58422)

Script Modules API

  • Add import map polyfill. (58263)
  • Import Maps: Only emit CDATA wrappers for inline scripts for JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.. (58818)

Extensibility

  • Fix broken list markup in navigation block when 3rd party blocks are used as decendants of navigation block. (55551)
  • Navigation block: Check Block Hooks API callback hasn’t already been added. (58772)

Synced Patterns

  • Disable overriding links of images inside pattern instances. (58660)
  • Fix nested pattern overrides and disable editing inner pattern. (58541)

Inspector Controls

  • Add missing PanelBody title for the columns block inspector. (58452)
  • Add spacing between input controls with custom values. (58410)

Custom Fields

  • Block Bindings: Update bindings registry with latest changes. (58843)

History

  • Columns: Batch vertical alignment updates. (58801)

Document Settings

  • Editor: Ensure the current author is included in the dropdown. (58716)

Rich Text

  • Add aria-readonly attribute to Rich Text component. (58687)

Navigation Menus

  • Navigation: Update the fallback block list to avoid a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Warning. (58588)

Patterns

  • Update the bindings attribs of blocks added during experimental phase. (58483)

Distraction Free

  • Add default restoration of UI when exiting distraction free mode. (58455)

Accessibility

  • Escape as Select/Edit mode Toggle. (58637)
  • Global styles revisions: Update text color contrast. (58340)

Components

  • CustomSelect: Disable virtualFocus to fix issue for screenreaders. (58585)
  • Font Library modal: Try to improve checkbox labelling. (58339)
  • PaletteEdit: Fix palette item accessibility. (58214)

Font Library

  • Buttons position and accessibility. (58212)
  • Fix focus loss when update/install button is pressed. (58364)
  • Removed and elements from Font Library Modal. (58221)

Block Library

  • Fix image link preset suggestions arrow key navigation. (58615)

CSSCSS Cascading Style Sheets. & Styling

  • Font Library: Fix font preview vertical alignment and respect reduce motion preference. (58451)

Widgets Editor

  • Widget Editor: Don’t disable the Save button. (58365)

Typography

  • Fix fonts modal dialog buttons accessibility. (58309)

Commands

  • Fix labeling of the command palette. (56718)

Performance

  • Block editor: Optimise getGlobalBlockCount/getClientIdsWithDescendants. (58356)
  • Block editor: Prevent isSubtreeDisabled call if not needed. (58349)
  • Block editor: Reduce appender sync! subscriptions. (58556)
  • Block editor: selectors: Avoid has() or double get() on Maps. (58372)
  • Block preview: Prevent recalculating editor styles if additional styles is empty. (58244)
  • Image block: Remove a block editor store sub. (57232)
  • Inner blocks: Don’t re-render list when controlled blocks change. (58575)
  • InnerBlocks: Fix continuous re-rendering on inner blocks change. (58348)
  • Navigation: Fix performance regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.. (58513)
  • Post template: Don’t fetch taxonomies if not needed. (58245)
  • Site editor: Add pattern/template load performance test with TT4. (58734)
  • Site editor: Avoid double post content parse (alternative). (58146)
  • Unmemoize Block component selectors. (58355)
  • core-data: Memoize getEntitiesConfig selector. (58393)
  • getBlockSettings: Avoid memoized selector with clientId. (58405)
  • useSettings: Extract selector. (58354)

Font Library

  • Font Collections: Lazy load json configuration for better performance. (58530)

List View

  • Unmemo recursive getEnabledClientIdsTree. (58525)

Block Editor

  • Optimize the ‘useBlockDisplayTitle’ hook. (58250)

Interactivity API

  • Break up long hydration task in interactivity init. (58227)

Experiments

Data Views

  • Update styling details in list item layout. (58397)

Synced Patterns

  • Add a control per block to reset pattern overrides. (57907)

Documentation

  • Add video embed documentation and grammar fixes in the Block Editor Handbook. (58029)
  • Block API: Add viewStyle property support to block.json. (55492)
  • CheckboxControl: Add custom label example to Storybook. (58438)
  • Docs: Copy and formatting edits for the “Markup representation of a block” guide. (58688)
  • Docs: Copy and formatting edits for the “Registration of a block” guide. (58709)
  • Docs: Copy and formatting edits for the “Static or Dynamic rendering” guide. (58681)
  • Docs: Copy and formatting edits for the “The block in the Editor” guide. (58697)
  • Docs: Copy and formatting edits for the “The block wrapper” guide. (58704)
  • Docs: Copy and formatting edits for the “Working with Javascript for the Block Editor” guide. (58651)
  • Docs: Copy and formatting edits for the “block.json” guide. (58732)
  • Docs: Copy edits and list formatting for main Block Editor Handbook readme. (58652)
  • Docs: Fix list formatting and some grammar in the Entities explanation doc. (58655)
  • Docs: Fix list markup in the Fundamentals of Block Development section. (58226)
  • Docs: Fix mistake in viewScriptModule documentation. (58815)
  • Docs: Formatting and copy edits for the File structure of a block guide. (58635)
  • Docs: Minor copy edits for the Block Development Environment page. (58614)
  • Docs: Remove duplicate content and update links. (58358)
  • Docs: Update link to the correct Fundamentals doc. (58352)
  • Docs: Update list formatting and descriptions in the Fundamentals of Block Development doc. (58630)
  • Docs: Update the Getting Started readme in the Block Editor Handbook. (58624)
  • Reference Gutenberg in PHP documentation from main documentation. (58453)
  • Removed extra parenthesis from document. (58662)
  • Restructure the FAQs to work with the new TOC design in the Block Editor Handbook. (58351)
  • Storybook: Add badges to private components. (58123)
  • Update documentation to avoid recommending early return PHP “anti-pattern”. (58454)
  • Update to rename reusable blocks. (58633)
  • Update versions-in-wordpress.md. (58545)
  • fix: InnerBlocks schema description in block.json. (58649)

Code Quality

  • Avoid running pattern overrides migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. in WordPress core. (58487)
  • Build: Add package build shebang and sync comments. (58264)
  • Date: Merge 6.4 and 6.5 compat files. (58479)
  • DefaultBlockAppender: Refactor to hooks. (58809)
  • Docs: Clarify the non-contextual post types. (58836)
  • Layout block supports use str_contains. (58251)
  • Move Nav Link PHPUnit tests to blocks directory. (58460)

Font Library

  • Address feedback from wordpress-develop#6027. (58691)
  • Fix font library unit tests nit-picks [round 2]. (58612)
  • Font Collections: Standardizes docblockdocblock (phpdoc, xref, inline docs) comments. (58654)
  • Font Library Address Outstanding Feedback from WP 6.4 review. (58675)
  • Move Fonts Library to compat dir for 6.5. (58608)
  • Remove font family and font face preview keys from theme.json schema. (58395)
  • Remove old and unused component and css. (58449)
  • Remove slug from collection schema to accommodate the changes on the wp_register_font_collection function signature. (58623)
  • Remove tests from classes that were already merged in core. (58752)
  • Remove tests from font library rest controllers already merged into core. (58778)
  • Return null if a font collection is not registered. (58735)
  • Simplify font collection schema. (58574)
  • Update Font Library REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. code to align with Core standards. (58619)
  • Update Font Library non-REST API code to align with Core standards. (58607)
  • Update font collection json schema. (58413)
  • Update fonts collection data URL for Gutenberg 17.7. (58746)
  • Use Button’s API to disable footer buttons. (58529)
  • [Font Library] Update PHPUnit tests per Core coding standards and practices. (58502)

Components

  • Add eslint rule for theme var regressions. (58130)
  • Add stylelint rule for theme var regressions. (58098)
  • AnglePickerControl: Hard deprecate bottom margin. (58700)
  • CustomGradientPicker: Hard deprecate outer margins. (58699)
  • FontSizePicker: Hard deprecate bottom margin. (58702)
  • GradientPicker: Hard deprecate outer margins. (58701)
  • Remove deprecation warnings for __next36pxDefaultSize. (58703)

Block Library

  • Interactivity API – Blocks: Move interactivity registration to render. (58678)
  • Navigation: Move the Navigation block rendering tests to the blocks directory. (58247)
  • Navigation: Remove use of Gutenberg_Navigation_Fallback class. (58369)
  • Paragraph: Update comment block. (58419)
  • Rename variation build methods. (58538)
  • Template Part: Derive ‘hasInnerBlocks’ inside selector. (58680)

Block Editor

  • Block Switcher: Don’t use the ‘useBlockDisplayInformation’ hook. (58562)
  • BlockSelectionButton: Don’t use the ‘useBlockDisplayInformation’ hook. (58640)
  • Link Control: Simplify the sprintf. (58831)
  • RichTextData: Use a private property. (58557)

Post Editor

  • Editor Settings: Rename the getPostLinkProps setting. (58416)
  • Editor: Reuse data query in the post author components. (58760)
  • Editor: Use hooks instead of HoCs in the post-taxonomies components. (58446)
  • Fix: Refactor pre publish panel to use function component instead of class. (58441)

Custom Fields

  • Block Bindings: Remove unneeded ‘setAttributes’ override. (58806)

Patterns

  • Pattern overrides: Update overrides attribute data structure and rename it to content. (58596)

Tools

  • Add BlockJsonDependenciesPlugin to modules build. (57927)
  • DEWP: Fix script module import field. (58770)
  • Introduce a Props Bot workflow. (58576)
  • More refinements to Props Bot run conditions. (58617)
  • Refine when Props Bot runs. (58616)
  • Remove noahtallen from .wp-env codeowners. (58283)
  • Scripts: Add viewScriptModule block.json support. (58203)

Testing

  • “Multiple use” block validation logic improvement [with Playwright]. (57576)
  • Block Bindings: Add block bindings end-to-end tests. (58550)
  • Block Bindings: Add tests for the frontend and polish the existing ones. (58676)
  • Block Bindings: Improve the code of the block bindings tests. (58785)
  • Button: Add focusable disabled variant to vizreg Storybook. (58634)
  • CustomSelect: Add tests for new features. (58583)
  • Fix flaky test of data-wp-on-window directive. (58642)
  • Flaky Test: Fix “directives inside islands should not be hydrated twice”. (58516)
  • Interactivity API: Fix flaky test in data-wp-on-document. (58668)
  • Migrate remaining ‘inserting blocks’ end-to-end tests to Playwright. (58108)
  • Migrate remaining ‘pattern block’ end-to-end tests to Playwright. (58486)
  • SearchControl: Add unit tests. (58693)
  • Try fixing flaky ‘inserting blocks’ end-to-end tests. (58848)
  • Try fixing flaky Paragraph block end-to-end test. (58208)
  • Use toBeDisabled instead of aria-disabled check. (58694)
  • e2e: Add a test to confirm that the focus moves from the post title to the paragraph using the enter key. (58872)
  • end-to-end Utils: Ensure deleteAllUsers does not delete current user. (58320)

Build Tooling

  • Add missing Interactivity API label to changelog script. (58879)
  • Enable dynamic import transform for ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Native tests. (58546)
  • Fix: Remove mention of weekly meeting from first time contributor PR label. (58547)
  • Interactivity API: Move Core implementation to compat 6.5 folder. (58829)
  • Remove phpunit tests for features backported to Core. (58776)
  • Update Performance tests base branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".. (58890)
  • Workflows: Add ‘Technical Prototype’ to the type-related labels list. (58163)

Security

Font Library

  • Sanitize font collection data. (58636)

REST API

  • Font Library REST API: Sanitize font family and font face settings. (58590)

Various

  • Script loader 6.4 compat: Check for init hook completion. (58406)

Font Library

  • Code style and code quality feedback from core 6.5 review. (58736)
  • Move getAllowedMimeTypes to FontUtils. (58667)
  • Refactor as a singleton. (58669)

Components

  • Removing Reakit Composite implementation. (58620)
  • Removing Reakit as a dependency. (58631)
  • Update the Snackbar warning message. (58591)

Global Styles

  • Always output core block global styles after base global styles. (58761)
  • Backportbackport A 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. theme.json tests from Core. (58476)

Block Library

  • Reduce label and fix capitalization for image block upload label. (58677)
  • Separator: Remove border-bottom property. (55725)

Patterns

  • Update pattern copy to Synced instead of Fully Synced. (58876)

Block API

  • ViewScriptModule: 6.5 compatibility changes. (58832)

Custom Fields

  • Block Bindings: Backport block bindings refactor from WordPress core. (58683)

Inspector Controls

Change cover block’s “Media settings” label to “Settings”. (58463)

First time contributors

The following PRs were merged by first-time contributors:

– @at-benni: Update versions-in-wordpress.md. (58545)

– @krupal-panchal: Removed extra parenthesis from document. (58662)

@shreyash3087: fix: InnerBlocks schema description in block.json. (58649)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @andrewhayward @andrewserong @annezazu @anton-vlasenko @antonis @aristath @artemiomorales @at-benni @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @creativecoder @DAreRodz @dcalhoun @dd32 @derekblank @desrosj @draganescu @ellatrix @fabiankaegy @fai-sal @fluiddot @gaambo @getdave @glendaviesnz @hellofromtonya @ironprogrammer @jameskoster @jasmussen @jeherve @jeryj @jorgefilipecosta @jsnajdr @kevin940726 @krupal-panchal @luisherranz @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @mikachan @mirka @ndiego @noahtallen @noisysocks @ntsekouras @oandregal @ockham @pbking @ramonjd @retrofox @richtabor @SantosGuillamot @scruffian @shreyash3087 @sirreal @t-hamano @talldan @tellthemachines @tjcafferkey @tomjn @tyxla @vcanales @westonruter @WunderBart @youknowriad

Props to @jameskoster for visual assets and @priethor @pbking @jorgefilipecosta @bph and @annezazu for helping draft this post

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

A Week in Core – February 12, 2024

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

  • 71 commits
  • 245 contributors
  • 82 tickets created
  • 11 tickets reopened
  • 82 tickets closed

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

Code changes

Administration

  • Improve contrast and consistency of focus styles – #51870

Bundled Themes

  • Twenty Fifteen: Add top margin to the File blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. button styles – #58498
  • Twenty Nineteen: Add border-radius to avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. images in the editor – #59285
  • Twenty Nineteen: Correct line height for Button block – #58443
  • Twenty Nineteen: Restore transition property to a single line – #58443
  • Twenty Sixteen: Add border-radius to avatar images in the editor – #59253
  • Twenty Twenty-Four: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions to text strings – #60298
  • Twenty Twenty-Four: Prefix the block pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. name – #59839
  • Twenty Twenty-Three: Include Latin-extended characters in DM Sans font files – #59008
  • Twenty Twenty-Two: Prefix the pages block pattern category name – #59839
  • Twenty Twenty: Fix Table block default and custom border colors – #58022
  • Twenty Twenty: Scope .privacy-policy styles to the footer only – #60469
  • Improve focus outline in Twenty Twenty-Four – #60334
  • Cast font URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org functions to string for add_editor_style()#59704

Build/Test Tools

  • Fix bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. pulling local environment containers on Apple silicone – #59930
  • Generate a human-readable HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. coverage report – #60476
  • Make the props bot message shorter – #60417
  • Pin a specific commit for Hosting Test Reporter – #59647
  • Revert [57551]#59647
  • Unpin PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 7.4 from the test coverage workflow – #59647
  • Adjust the metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. key time in wp_scheduled_delete() tests – #59938

Canonical

  • Introduce admin_canonical_url filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.#59545

Coding Standards

  • Add missing fullstop to docblocks in wp-includes/vars.php#41877
  • Replace alias join() in WP_Font_Utils#60473

Editor

  • Add viewScriptModule handling to block.json metadata – #60233
  • Add wakeup magic method to the block bindings registry – #60282
  • Avoid double escaping on value passed for attribute in HTML tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) processor
  • Expand Block Bindings for button block – #60481
  • Fix block style variation selector generation – #60453
  • Fix typo in FontUtils doc block – #59166
  • Improve code documentation for block bindings – #60282
  • Introduce WP_Block_Bindings_Source class – #60447
  • Make asset file optional for block scripts – #57234
  • Refactor block binding processing and attribute computation – #60282
  • Register the Google Font collection – #59166
  • Show the patterns page for classic themes – #58827
  • Update PHPDocPHPDoc (docblock, inline docs) for block bindings’s context arg – #59743
  • Update pattern overrides attribute format – #60456
  • Update the WordPress packages to GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 17.7RC1 – #60315
  • Block HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.: Inject hooked blocks into modified templates and parts – #59646
  • Blocks: Allow reading the script handle from asset files – #60485
  • Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.: Integrate Server Directive Processing – #60356
  • Interactivity API: Remove empty file – #60356

Filesystem API

  • Fix typo in ftp_base::restore()#60497

General

  • Add an option to configure the site icon in general settings – #54370, #16434
  • Remove ableist language from code comments – #60247

HTML API

  • Add subclassed has_bookmark() and fix seek() – #60474
  • Join text nodes on invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid.-tag-name boundaries – #60385

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Add Translator comments for Planet URLs – #58010

Media

  • Update progress spinner position on small screens – #33049
  • enable control of progressive image output – #21668

Networks and Sites

  • Improve switch_to_blog() docblockdocblock (phpdoc, xref, inline docs)#60332

Permalinks

  • Detect Caddy web server support – #41877

Plugins

  • Store pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party deletion results in temporary option – #59433

Quick/Bulk Edit

  • Pre-fill category fields with their status – #11302

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Add featured_media field to attachments endpoint – #41692
  • Improve error handling in REST meta fields – #48823
  • Introduce the necessary endpoints for the font library – #59166
  • Provide detailed error data in REST API response – #60014

Script Loader

  • Add a timezone offset display value to wp.date.setSettings – #60105
  • Improve translators comments for wp.date.setSettings in compat file – #60412
  • always output core block global styles after base global styles – #60280
  • Add deregister module function – #60463

Shortcodes

  • Always return an array in shortcode_parse_atts()#59249

Themes

  • Add ‘theme_files’ cache group to block pattern cache operations – #60120
  • update add_theme_support docblock – #60221

Toolbar

  • Add adminbar link for new sites in networknetwork (versus site, blog) installs – #41104

Upgrade/Install

  • Avoid update_option() calls during bootstrap – #60461, #60457, #60491
  • Upgrade/Install: Introduce Plugin Dependencies – #22316
  • Micro-optimizations for getting plugin_file in plugins loader loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.#60510
  • Remove unnecessary individual subfiles from $_old_files array – #58995

Users

  • Replace table tags for color palettes in profiles – #53157

Props

Thanks to the 245 (!!) people who contributed to WordPress Core on Trac: @gziolo (14), @mukesh27 (13), @swissspidy (13), @sabernhardt (13), @poena (12), @shailu25 (11), @huzaifaalmesbah (9), @youknowriad (8), @oglekler (7), @joedolson (7), @jorbin (7), @audrasjb (7), @spacedmonkey (6), @SergeyBiryukov (6), @dmsnell (6), @get_dave (6), @hellofromTonya (5), @afercia (5), @kebbet (5), @harshgajipara (5), @johnbillion (5), @costdev (4), @nicolefurlan (4), @jonsurrell (4), @czapla (4), @TimothyBlynJacobs (3), @karmatosed (3), @pbiron (3), @desrosj (3), @afragen (3), @azaozz (3), @luisherranz (3), @dingo_d (2), @mikeschroder (2), @andraganescu (2), @johnjamesjacoby (2), @rajinsharwar (2), @nidhidhandhukiya (2), @cbravobernal (2), @dd32 (2), @wildworks (2), @pooja1210 (2), @wasiur195 (2), @scribu (2), @ajmcfadyen (2), @peterwilsoncc (2), @pitamdey (2), @santosguillamot (2), @isabel_brison (2), @bernhard-reiter (2), @mcsf (2), @ocean90 (2), @aaronrobertshaw (2), @sadpencil (1), @cfinnberg (1), @viliamkopecky (1), @ecc (1), @rcorrales (1), @cvorko (1), @flixos90 (1), @joemcgill (1), @adamsilverstein (1), @_ck_ (1), @markoheijnen (1), @Japh (1), @pmeenan (1), @derekspringer (1), @buley (1), @ericlewis (1), @bahia0019 (1), @born2webdesign (1), @kushang78 (1), @timothyblynjacobs (1), @wonderboymusic (1), @dlh (1), @obenland (1), @jameskoster (1), @kjellr (1), @stacimc (1), @h71 (1), @krupajnanda (1), @jordesign (1), @monzuralam (1), @hrrarya (1), @fnpen (1), @mhshohel (1), @bedas (1), @jeremyfelt (1), @prionkor (1), @matveb (1), @benniledl (1), @jsnajdr (1), @mnydigital (1), @onemaggie (1), @luminuu (1), @pouicpouic (1), @ugyensupport (1), @jivygraphics (1), @sumitbagthariya16 (1), @kkmuffme (1), @talldanwp (1), @dartiss (1), @upadalavipul (1), @manfcarlo (1), @mayur8991 (1), @panchalhimani711 (1), @itpathsolutions (1), @thakordarshil (1), @Ankit-K-Gupta (1), @darshitrajyaguru97 (1), @pavelevap (1), @chasedsiedu (1), @helen (1), @joshcanhelp (1), @ubernaut (1), @Cyberchicken (1), @laumindproductscomau (1), @Marcoevich (1), @tomybyte (1), @thinkluke (1), @virtality-marketing-solutions (1), @Michalooki (1), @itecrs (1), @pannelars (1), @WHSajid (1), @samba45 (1), @Mte90 (1), @tomluckies (1), @soulseekah (1), @francina (1), @webcommsat (1), @balub (1), @sarathar (1), @glendaviesnz (1), @up1512001 (1), @zodiac1978 (1), @davidbinda (1), @westonruter (1), @retrofox (1), @joefusco (1), @colorfultones (1), @acosmin (1), @alh0319 (1), @beafialho (1), @javiercasares (1), @mmaattiiaass (1), @grantmkin (1), @oandregal (1), @ajlende (1), @ahoereth (1), @alanfuller (1), @alexkingorg (1), @amykamala (1), @anonymized_10690803 (1), @apeatling (1), @ashfame (1), @atimmer (1), @aristath (1), @batmoo (1), @beaulebens (1), @blobaugh (1), @bobbingwide (1), @boonebgorges (1), @brianhenryie (1), @chanthaboune (1), @chrisdavidmiles (1), @coolmann (1), @courane01 (1), @danielbachhuber (1), @davidperez (1), @Denis-de-Bernardy (1), @DJPaul (1), @dougal (1), @DrewAPicture (1), @ethitter (1), @filosofo (1), @georgestephanis (1), @giuseppemazzapica-1 (1), @goldenapples (1), @griffinjt (1), @husobj (1), @ideag (1), @jarednova (1), @jbobich (1), @jbrinley (1), @jltallon (1), @johnciacia (1), @joppuyo (1), @jsmoriss (1), @knutsp (1), @kraftbj (1), @kraftner (1), @kurtpayne (1), @lkraav (1), @logikal16 (1), @man4toman (1), @markjaquith (1), @matt (1), @mbijon (1), @megphillips91 (1), @mikeschinkel (1), @mordauk (1), @morehawes (1), @mrwweb (1), @mte90 (1), @mzaweb (1), @nacin (1), @norcross (1), @nvwd (1), @nwjames (1), @obliviousharmony (1), @paaljoachim (1), @pauldewouters (1), @pbaylies (1), @Philipp15b (1), @pogidude (1), @retlehs (1), @rmccue (1), @ryan (1), @sabreuse (1), @sc0ttkclark (1), @sereedmedia (1), @ShaneF (1), @shidouhikari (1), @soean (1), @stephenh1988 (1), @taylorde (1), @tazotodua (1), @threadi (1), @TJNowell (1), @tollmanz (1), @toscho (1), @tropicalista (1), @Viper007Bond (1), @westi (1), @whiteshadow (1), @williamsba1 (1), @wpsmith (1), @ZaneMatthew (1), @noisysocks (1), @kevin940726 (1), and @fabiankaegy (1).

Congrats and welcome to our 28 (!!) new contributors of the week: @sadpencil, @cfinnberg, @viliamkopecky, @ecc, @cvorko, @pmeenan, @derekspringer, @born2webdesign, @kushang78, @hrrarya, @fnpen, @mhshohel, @benniledl, @mnydigital, @up1512001, @alh0319, @anonymized_10690803, @blobaugh, @chrisdavidmiles, @giuseppemazzapica-1, @jltallon, @johnciacia, @logikal16, @pbaylies, @Philipp15b, @pogidude, @tropicalista, @whiteshadow ♥️

Core committers: @gziolo (11), @youknowriad (10), @sergeybiryukov (8), @audrasjb (7), @joedolson (7), @swissspidy (5), @desrosj (5), @spacedmonkey (3), @jorbin (3), @costdev (3), @hellofromtonya (2), @dmsnell (2), @isabel_brison (2), @adamsilverstein (1), @davidbaumwald (1), and @bernhard-reiter (1).

#6-5, #core, #week-in-core

A Week in Core – February 5, 2024

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

  • 66 commits
  • 117 contributors
  • 79 tickets created
  • 8 tickets reopened
  • 56 tickets closed

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

Code changes

Administration

  • AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility): Use the default cursor style for labels and disabled form controls – #59733

Build/Test Tools

  • Introduce Props Bot workflow – #60417
  • Mock pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. response in WP_REST_Plugins_Controller_Test#59647
  • Pass a token to the Codecov action – #59658
  • Some improvements to the Props Bot workflow – #60417
  • Test against MySQLMySQL MySQL 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/. 8.3 – #59779
  • Update the codecov/codecov-action action – #59658
  • Update third-party SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. action – #59805
  • Remove redundant unregister call in blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. bindings tear down – #60282

Bundled Themes

  • Twenty Eleven: Fix typo in twentyeleven_widgets_init() description – #60383
  • Twenty Fifteen: Fix typo in css/blocks.css#60383
  • Twenty Twenty-Three: Rename Comments template part – #56999

Coding Standards

  • Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller – #60358
  • Rename the $ID parameter to $post_id in trackback()#59650
  • Rename the $expires_offset variable in cache_javascript_headers()#59650
  • Update PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. to version 3.8.1 – #60279
  • Use strict comparison for functions lookup in plugin/theme editors – #60415
  • Use strict comparison in wp-admin/update-core.php#58061, #60415

Docs

  • Fix typo in do_robots() docblockdocblock (phpdoc, xref, inline docs)#60405

Editor

  • Add Block Bindings API helpers – #60282
  • Add allowed_blocks field to block registration and REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.#60403
  • Add viewStyle property to block.json for frontend-only block style – #59673
  • Add deprecated functions from interactivity core blocks – #60380
  • Add registry for block binding sources – #60282
  • Add the Block Bindings API – #60282
  • Fix PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning in Layout block support – #60327
  • Fix Theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. font settings in unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.#60341
  • Fix Theme.json font settings unit test – #60341
  • Refactor the way block bindings sources are handled – #60282
  • Remove shadow support via direct attribute – #60377
  • Sanitize nested array in theme.json properly – #60360
  • Update WordPress packages to GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 16.7 RC3 – #60315
  • Update the WordPress packages to the Gutenberg 16.7 RC2 version – #60315
  • Update the minimum compatible version of Gutenberg – #60315
  • fix small typos in block bindings API docblocks – #60282, #60386
  • introduce dimensions.aspectRatio block support – #60365
  • reduce specificity of block style variation selector – #60312

General

  • Add tests for array_is_list polyfill added in r57337#55105

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

  • Fix CDATA lookalike matching invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. CDATA – #60406
  • Fix splitting single text node – #60385
  • Fix typo setting the wrong self-closing flag
  • Fix void tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) nesting with next_token – #60382
  • Reset parser state after seeking to bookmark – #60428
  • Test cleanup – #59647

HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. API

  • Ensure cookie names are cast to strings – #58566

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Add missing space after foreach keyword – #59656
  • Add type declaration to new method missed in [57518]#59656
  • Delete .l10n.php files when deleting a theme – #59656
  • Ensure .l10n.php files are deleted when upgrading language packs – #59656
  • Fix plural forms parsing in WP_Translation_File#59656
  • Improve singular lookup of pluralized strings – #59656
  • Improve singular lookup of pluralized strings – #59656
  • Load new translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. library in wp_load_translations_early()#59656
  • Revert [57386] pending further investigation – #59656
  • Support loading .l10n.php translation files on their own – #59656

Upgrade/Install

  • When populating options, maybe_serialize instead of always serialize

Media

REST API

  • Add route for single styles revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.#59810
  • Support assigning terms when creating attachments – #57897

Script Loader

  • Remove unused WP_Scripts::get_unaliased_deps() method – #60438
  • Use a global variable in wp_script_modules()#56313
  • Add import map polyfill for older browsers – #60348

Upload

  • Fallback to PclZip to validate ZIP file uploads – #60398
  • Check for and verify ZIP archives

Props

Thanks to the 117 (!) people who contributed to WordPress Core on Trac: @mukesh27 (12), @swissspidy (11), @gziolo (7), @peterwilsoncc (6), @jonsurrell (6), @costdev (5), @jorbin (5), @dmsnell (4), @youknowriad (4), @santosguillamot (4), @desrosj (4), @talldanwp (4), @czapla (4), @luisherranz (4), @azaozz (3), @joemcgill (3), @lgladdy (3), @sc0ttkclark (3), @artemiosans (3), @fabiankaegy (3), @shailu25 (3), @cbravobernal (3), @get_dave (3), @jeffpaul (2), @johnbillion (2), @kevin940726 (2), @joedolson (2), @dharm1025 (2), @harshgajipara (2), @isabel_brison (2), @audunmb (1), @britner (1), @cdevroe (1), @colorful-tones (1), @courane01 (1), @endymion00 (1), @feastdesignco (1), @halounsbury (1), @jsandtro (1), @karinclimber (1), @kevincoleman (1), @koesper (1), @maartenbelmans (1), @mathewemoore (1), @melcarthus (1), @mujuonly (1), @nerdpressteam (1), @olegfuture (1), @otto42 (1), @room34 (1), @sayful (1), @schutzsmith (1), @stephencronin (1), @svitlana41319 (1), @tnolte (1), @tobiasbg (1), @vikram6 (1), @welaunchio (1), @wpfy (1), @viralsampat (1), @adamsilverstein (1), @lukefiretoss (1), @ayeshrajans (1), @navjotjsingh (1), @Tyrannous (1), @jb510 (1), @gregbenz (1), @nickpagz (1), @JavierCasares (1), @yguyon (1), @mamaduka (1), @upadalavipul (1), @jsnajdr (1), @afercia (1), @Chouby (1), @dd32 (1), @pento (1), @noisysocks (1), @chrisdavidmiles (1), @wpscholar (1), @annezazu (1), @chanthaboune (1), @Chrystl (1), @codepo8 (1), @oglekler (1), @nicolefurlan (1), @antpb (1), @syamraj24 (1), @wildworks (1), @madhudollu (1), @westonruter (1), @mikachan (1), @poena (1), @nosilver4u (1), @darssen (1), @kraftbj (1), @engahmeds3ed (1), @barry-hughes (1), @schlessera (1), @aaronrobertshaw (1), @mmaattiiaass (1), @ramonopoly (1), @gaambo (1), @andrewserong (1), @flixos90 (1), @xknown (1), @tykoted (1), @afragen (1), @hellofromtonya (1), @ocean90 (1), @amieiro (1), @Dharm1025 (1), @Ankit-K-Gupta (1), @tanjimtc71 (1), @timothyblynjacobs (1), @spacedmonkey (1), @jrf (1), and @antonvlasenko (1).

Congrats and welcome to our 25 (!!) new contributors of the week: @audunmb, @cdevroe, @endymion00, @feastdesignco, @halounsbury, @kevincoleman, @koesper, @maartenbelmans, @mathewemoore, @melcarthus, @nerdpressteam, @olegfuture, @room34, @sayful, @svitlana41319, @vikram6, @welaunchio, @navjotjsingh, @gregbenz, @nickpagz, @chrisdavidmiles, @codepo8, @nosilver4u, @darssen, @barry-hughes ♥️

Core committers: @swissspidy (18), @youknowriad (11), @sergeybiryukov (7), @gziolo (7), @desrosj (6), @dmsnell (6), @peterwilsoncc (2), @adamsilverstein (2), @isabel_brison (2), @jorbin (2), @afercia (1), @joedolson (1), and @jorgefilipecosta (1).

#6-5, #core, #week-in-core

New Commit Message Requirements in Git: Hello Props Bot

Note: This post was updated to correct the format used in one example and remove references to the wapuu w.org username (not officially associated with the project). A note was also added under a list saved as a synced pattern to indicate the contents of the list may change over time. 2/2/2024 – @desrosj

In January 2022, a proposal was published on this blog to implement a new process within any GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ repository under the WordPress organization to ensure anyone and everyone contributing to the project receives due thanks in the form of “props.” The post is still almost entirely accurate and it’s recommended you read that in full. Here are some highlights.

One of the greatest things about open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. is that contributions come in many shapes and sizes. Anyone can contribute regardless of skill set, experience, time zone, or background. There are countless ways for someone to get involved with open source projects.

WordPress is no different. Contributors submitting code modifications are only a small subset of the larger community. Recognizing all types of contributions is essential to establishing a healthy contributor base, and the responsibility falls on the project’s maintainers. Contributors who feel recognized and valued are more likely to continue contributing.

There is an established and documented policy on the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. side of the project to ensure that everyone contributing to a changeset receives credit (or “props”). This method has been in place for over 12 years, making generating the list of props for each release scriptable and straightforward. The process is unique to the project but frequently receives positive feedback from others in open source.

Since being merged into WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. in version 5.0, there has yet to be an equivalent process for the contributions on GitHub. The process is manual, does not account for non-code contributions, and often results in contributors not receiving credit for their work.

The post documents the state of props practices and related processes in detail for both Trac/SVN and GitHub. No major changes have been made to these practices since the publish date of that post.

After taking into account all of the feedback received from that proposal, a new policy is now in place for maintainers.

New requirement for GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ GitHub merge commit messages

Starting today, it is required that GitHub merge commit messages for Gutenberg include credits for all contributors following the same guidance as Core SVN commits:

Props should be given to all those who contributed to the final commit, whether through patches, refreshed patches, code suggested otherwise, design, writing, user testing, or other significant investments of time and effort.

In Core SVN, this is done as Props x, y, z. In GitHub, this will be done using Co-authored-by trailers. To avoid having personal emails in the commit log of the project (or having to know which personal email someone has associated with their GitHub account at a given time), a contributor’s GitHub and WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ usernames should be used in the following format:

Co-authored-by: githubusername <dotorgusername@git.wordpress.org>

This practice defines a consistent expected pattern that can be reliably parsed by a script to collect contributions for a repository from a GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/. log in the same fashion as the Core SVN repository.

In order to make this new practice easier for committers and maintainers, a new tool has been merged into the code bases.

Introducing Props Bot

Props Bot is a new GitHub Action that will compile a list of contributors for a given pull request. The bot will leave a comment with a list of contributors formatted for use in both Trac SVN and GitHub.

The comment will be continuously updated as new activity occurs. Additionally, the bot can be manually run by adding the props-bot label to the pull request.

Types of activity included:

  • Anyone who publishes commits to the PR’s branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch"..
  • Anyone who left a review or responded to a review on the PR.
  • Anyone who commented on the PR.
  • Anyone who created an issue that is attached to the PR.
  • Anyone who commented on issues attached to the PR.

As of [57517] in wordpress-develop, and 91450bd in WordPress/gutenberg, Props Bot is now available. 🎉

An example comment by Props Bot on a pull request.

The bot relies on an active connection between a WordPress.org and GitHub account. For a step-by-step guide on connecting these accounts, please check out the new page in the Core Handbook

The bot can be used in any GitHub repository, not just ones under the WordPress organization. However, it’s required for the Gutenberg repository, and official WordPress repositories are strongly encouraged to use it since it will allow the project to appropriately credit contributors in WordPress releases more easily.

What doesn’t Props Bot do?

While the basics of collecting contributors is handled by Props Bot, there are still some things not yet handled by Props Bot:

  • Manually include someone who has not directly interacted with the PR or linked issues.
  • Contributors who only interact on Trac tickets relevant to the PR need to be manually included.
  • Only the first 100 comments are currently checked (see props-bot-action 41).

As a contributor, what do I need to do?

All contributors should confirm that they have connected their GitHub and WordPress.org accounts. There are several ways to confirm this documented on the relevant page in the handbook.

The easiest way to confirm your accounts are connected is by viewing your w.org profile.

There is one additional step that all contributors should take, even if you have previously connected your accounts.

An added benefit of this new practice is that all props given using this new format will be shown on your GitHub profile’s activity graph. However, this depends on your w.org Git email being added as an alias to your GitHub account (example: desrosj@git.wordpress.org). This can be done by visiting the Settings > Emails page on GitHub. 

Note: You’ll see an orange “unverified” notice next to your @git.wordpress.org email after adding it as an alias in GitHub. In the future, email forwarding may be configured to allow these emails to be verified. See this Making Systems request for more information.

How are unlinked contributors handled?

When unlinked contributors are detected, Props Bot will pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” them in the comment, requesting they establish a connection and link to the handbook page.

Any unlinked contributors are noted in the message provided by Props Bot as a way to associate the person’s contributions with their w.org account should they connect their accounts after the PR is merged. This should be included in the merge commit message.

Contributors without a connected w.org account can not be credited in the w.org Credits APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. and will not have their contributions show up on their GitHub profile.

As a Core Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. or repository maintainer, what do I need to do?

In addition to linking your profiles as described above, a new page has been created in the Core Handbook detailing best practices for Contributor Attribution (“props”). This page collects related information from various parts of the handbook in one location. Please give this page a full read. Below are the specific rules around the new practice:

  • The list of Co-authored-by trailers must be preceded by a blank line.
  • Co-authored-by trailers should be the last thing in a commit message.
  • The unlinked contributors must come before the Co-authored-by trailers.
  • Unlinked contributors should be entered in one line preceded by Unlinked contributors:, each one separated by a comma and a space (, ), and a period after the last one. Example: Unlinked contributors: nacin, matt.
  • Usernames must not start with an @ (at) sign.
  • When manually adding someone, please only use their GitHub and WordPress.org usernames in the following format: Co-authored-by: githubusername <dotorgusername@git.wordpress.org>.
  • The only accounts that are allowed to be noted with a non-w.org email are bot accounts (dependabot or github-actions). It’s important to leave these bots as listed by the GitHub generated Co-authored-by trailer so future contributors know which bots were involved in the changes.
  • If there are contributors already noted with Co-authored-by in the suggested commit message, verify they are also included in the list provided by Props Bot before removing. These will be in GitHub format and should be converted to the above w.org format. Deleting the GitHub formatted ones will ensure an accurate contributor count for each commit, but it’s not required. Non w.org emails will be ignored by the props parsing scripts.
  • If a contributor’s w.org username is unknown, add their GitHub username to the “Unlinked contributors” list.
  • If there are Signed-off-by trailers in the suggested commit message, leave them in place above Co-authored-by trailers. These serve a different purpose and are ignored in the context of collecting props.

Note: The above list is a synced pattern. As it’s improved over time, the changes will be reflected in this post. The above list may be different than what was originally published.

Suppose you maintain a repository and want to use this bot in your project. In that case, the repository has an example YAML file with detailed inline documentation that you can copy into your project. Alternatively, you can add the action to one of your pre-existing workflows or submit a Request to Help Implement issue.

Other Notes

Here are a few other notes:

  • If you don’t see a Props Bot comment on your PR, you may need to pull in the latest changed in trunk.
  • The action does not currently support using the @v1 notation in the value of uses for a step. For now, using trunk is recommended to help test Props Bot.
  • The Action has no tests. Contributions are more than welcome!
  • Because this practice was not in place during the 6.5 release cycle, the previously documented process will be used one more time. The timing of this change is such that the work for 6.6 in the Gutenberg release is about to begin, giving us an entire release cycle using this process and allowing the 6.6 release to switch to automating props collection from the Gutenberg repository.

Summary

While these changes do not solve contribution tracking for every team, every workflow, and every tool that’s to make WordPress, this new practice, combined with the Props Bot action, will bring a consistent standard and level of attribution that can be parsed more easily across more areas of the project.

This is version 1 of this change. All feedback and testing is welcome. There will likely be some refinements required after wider testing!

A WordPress release is a sum of all the contributions made during each release cycle, and use of this Props Bot will help us more accurately thank every contributor. ❤️

Props for Props Bot Contributions

A post about props would not be complete without some props! Big props go out to @dharm1025 for helping to get the initial code converted from a generic JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. file to a GitHub Action. Thank you to @jeffpaul and @jorbin for working closely to refine the action, create the new handbook pages, modify existing ones as needed, and test the bot. And thanks to @dd32 for creating the underlying w.org API endpoint to return w.org profiles for GitHub usernames making this possible.

Others who provided feedback, historical insight, helped test, or peer reviewed this post: @pento, @talldanwp, @noisysocks, @gziolo, @swissspidy, @youknowriad, @peterwilsoncc, @joemcgill, @chrisdavidmiles, @wpscholar, @annezazu, @chanthaboune, @davidbaumwald, @cbringmann, and @desrosjbot.

A Week in Core – January 29, 2024

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

  • 48 commits
  • 64 contributors
  • 60 tickets created
  • 4 tickets reopened
  • 67 tickets closed

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

Code changes

Build/Tests Tools

  • Configure prettier properly – #60316
  • Update the caniuse data – #59657
  • Update third-party GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Actions – #59805
  • Update third-party SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. action – #59805
  • Ensure set_error_handler is cleaned up – #60305
  • Expand sanitize_text_field() tests – #60357

Bundled Themes

  • Twenty Twenty-Four: Change font family slug to lowercase – #60325

Coding Standards

  • Add missing escaping functions to WP_Customize_Control and WP_Customize_Nav_Menu_Location_Control#60324
  • Add missing escaping in Custom_Image_Header::step_2()#59278
  • Fix some spaces on blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.-supports background
  • Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller – #60358
  • Update PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. to version 3.8.1 – #60279
  • Use strict type check for in_array() in get_hooked_block_markup()#60279

Docs

  • Add missing full stop in WP_Comment_Query::parse_query() DocBlockdocblock (phpdoc, xref, inline docs)#60323
  • Fix a few typos in wp-includes/pomo/po.php#60346
  • Fix typo in _get_block_template_file() DocBlock – #59651
  • Improve various globals documentation, as per docblock standards – #59255, #59651
  • Typo correction in wp_internal_hosts docblock – #60363

Editor

  • Add Block Bindings APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. helpers – #60282
  • Add original_source and author_text to the templates REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.#60358
  • Add registry for block binding sources – #60282
  • Add video and audio pattern categories – #60342
  • Define the labels of the pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.#60322
  • Ensure PHPUnit10 compatibility for ThemeJson unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression.#60305
  • Fix Theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. application of custom root selector for styles – #60343
  • Fix back to items label capitalization for the pattern categories – #60322
  • Set show_tagcloud to false for Pattern Categories – #60119
  • Unset reference used in foreach statement – #60326
  • Update the ThemeJson unit test to cover custom CSSCSS Cascading Style Sheets. feature – #60294
  • Update the WordPress packages to the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 16.7 RC2 version – #60315
  • fix classname output on blocks without layout – #60292
  • fix fluid font division by zero error when min and max viewport widths are equal – #60263
  • Amend PHPDocPHPDoc (docblock, inline docs) for hooked_block_{$hooked_block_type} filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.#59572, #60126
  • Introduce a new hooked_block_{$block_type} filter – #59572, #60126

General

  • Add $schema property to block and theme JSON files – #60255

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

  • Scan all syntax tokens in a document, read modifiable text – #60170
  • Support INPUT tags – #60283
  • Support PARAM, SOURCE, and TRACK tags – #60283

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Add missing variable in string replacement – #59656
  • Improve docblocks after [57337]#59656
  • Improve edge case handling in WP_Translation_Controller#59656
  • Introduce a more performant localization library – #59656
  • Rename WP_Translation_Controller::instance() method to get_instance()#59656

Media

  • Redirect inactive attachment pages for logged-out users – #59866, #57913

Script Loader

  • Clarify in docs that wp_get_inline_script_tag() and wp_print_inline_script_tag() can take non-JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. data – #60331
  • Load the modules to the footer in classic themes – #60240
  • Only emit CDATA wrapper comments in wp_get_inline_script_tag() for JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.#56313, #60320
  • Script Modules API: Rename wp_module to wp_script_module#56313

Props

Thanks to the 64 people who contributed to WordPress Core on Trac: @swissspidy (9), @mukesh27 (8), @gziolo (6), @jonsurrell (6), @get_dave (5), @audrasjb (5), @shailu25 (4), @dmsnell (4), @luisherranz (3), @jorbin (3), @andrewserong (3), @westonruter (3), @flixos90 (3), @jrf (2), @isabel_brison (2), @costdev (2), @peterwilsoncc (2), @antonvlasenko (2), @czapla (2), @artemiosans (2), @santosguillamot (2), @sc0ttkclark (2), @lgladdy (2), @talldanwp (2), @youknowriad (2), @fabiankaegy (2), @nareshbheda (2), @ntsekouras (2), @poena (2), @aaronrobertshaw (2), @bernhard-reiter (2), @joemcgill (2), @wildworks (2), @desrosj (1), @upadalavipul (1), @viralsampat (1), @sabernhardt (1), @pbearne (1), @vladimiraus (1), @kebbet (1), @afercia (1), @aristath (1), @chesio (1), @joppuyo (1), @lakshmananphp (1), @sergeybiryukov (1), @johnbillion (1), @tomjcafferkey (1), @timbroddin (1), @yansern (1), @RavanH (1), @onemaggie (1), @huzaifaalmesbah (1), @dlh (1), @zieladam (1), @cbravobernal (1), @hardik2221 (1), @dd32 (1), @akirk (1), @ramonopoly (1), @idad5 (1), @nefff (1), @jonsurrel (1), and @kamranzafar4343 (1).

Congrats and welcome to our 2 new contributors of the week: @vladimiraus, @hardik2221 ♥️

Core committers: @youknowriad (11), @sergeybiryukov (7), @swissspidy (6), @dmsnell (4), @desrosj (3), @jorgefilipecosta (3), @audrasjb (3), @bernhard-reiter (3), @gziolo (2), @westonruter (2), @jorbin (2), and @isabel_brison (2).

#6-5, #core, #week-in-core

A Week in Core – January 22, 2024

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

  • 35 commits
  • 62 contributors
  • 67 tickets created
  • 10 tickets reopened
  • 72 tickets closed

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

Code changes

Administration

  • Remove empty form action attributes – #58226

Bootstrap/Load

  • Introduce functions to check whether WordPress is serving a REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. request – #42061

Build/Test Tools

  • Remove leftover trailingslashit() calls in WP_Textdomain_Registry tests – #58919
  • Expand “imagemin” Grunt task to cover default themes – #58996
  • Fix unstable query tests – #60288

Bundled Theme

  • Fix a couple of incorrect theme name references – #60310
  • Typo corrections in various themes docblocks – #60268, #59651
  • Version bump themes affected by #60241#60267
  • Twenty Twenty-Four: Remove extra tab character inside the text domain – #60245
  • Twenty Twenty-Four: Update license information in readme – #59838
  • Twenty Twenty: Add missing comma in twentytwenty_classic_editor_styles()#48630
  • Twenty Twenty: Move the Inter font declaration to a separate file and enqueue the file – #48630
  • Twenty Twenty: Replace wp_date() with date_i18n()#48589

Comments

  • Use post_password_required() for comment capability checks – #59929

Docs

  • Correct the WP_User Query location reference in query cache tests – #59651
  • Correct the placement of @global tags in wp-settings.php#60146
  • Fix several typos in inline comments – #60285
  • Fix var types of parameters in sanitize_option() and sanitize_option_{$option}#60214, #59651
  • Format new_admin_email_content placeholders as a list – #60262

Editor

  • Support deferred blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. variation initialization on the server – #59969

Embeds

  • Ensure the deprecated function print_emoji_styles isn’t used – #59892. See: #58775

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Support for BR, EMBED, & other tags – #60283
  • Add support for HR element – #60283
  • Add support for PRE and LISTING elements – #60283
  • Cleanup tests and list of void elements – #60307

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Cache list of language file paths in WP_Textdomain_Registry#58919
  • Correctly invalidate language file paths in WP_Textdomain_Registry#58919
  • Do not use trailingslashit in WP_Textdomain_Registry#58919
  • Fix duplicate determine_locale() tests added in [57286]#58696
  • Prevent PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning in WP_Textdomain_Registry#58919

Media

  • Inline image CSSCSS Cascading Style Sheets. width to backfill width and height attributes – #59352
  • Redirect inactive attachement pages for logged-out users – #59866, #57913
  • Revert [57310]#59866, #57913

Plugins

  • Correct table layout on smaller screens – #50069

Upgrade/Install

  • JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. localization on install page – #58696

Props

Thanks to the 62 people who contributed to WordPress Core on Trac: @sabernhardt (7), @mukesh27 (7), @shailu25 (6), @poena (4), @swissspidy (3), @jonsurrell (3), @dmsnell (3), @joemcgill (3), @flixos90 (3), @peterwilsoncc (3), @SergeyBiryukov (2), @hellofromTonya (2), @jorbin (2), @costdev (2), @acosmin (1), @desrosj (1), @passoniate (1), @JavierCasares (1), @spacedmonkey (1), @thekt12 (1), @Mamaduka (1), @gaambo (1), @gziolo (1), @lots0logs (1), @TimothyBlynJacobs (1), @joehoyle (1), @pento (1), @mikejolley (1), @iandunn (1), @Cybr (1), @petitphp (1), @markhowellsmead (1), @nielslange (1), @Otto42 (1), @SGr33n (1), @afercia (1), @aristath (1), @chesio (1), @joppuyo (1), @lakshmananphp (1), @sergeybiryukov (1), @boonebgorges (1), @bobbingwide (1), @johnbillion (1), @gerardreches (1), @crstauf (1), @sachyya-sachet (1), @joyously (1), @Malae (1), @audrasjb (1), @bartkleinreesink (1), @nicolefurlan (1), @shubhamsedani (1), @rajinsharwar (1), @joedolson (1), @westonruter (1), @dd32 (1), @shooper (1), @stevenlinx (1), @mreishus (1), @NekoJonez (1), and @jornp (1).

Congrats and welcome to our 3 new contributors of the week: @lots0logs, @joppuyo, @bartkleinreesink ♥️

Core committers: @sergeybiryukov (10), @swissspidy (8), @dmsnell (4), @peterwilsoncc (3), @flixos90 (3), @audrasjb (3), @joemcgill (1), @jorbin (1), @desrosj (1), and @joedolson (1).

#6-5, #core, #week-in-core