A Week in Core – November 15, 2021

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 November 8 and November 15, 2021.

  • 116 commits (!)
  • 204 contributors (!)
  • 57 tickets created
  • 10 tickets reopened
  • 89 tickets closed

The Core team is currently working on the major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WordPress 5.9 🛠

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


  • Add commas to end of multi-line array items – #54357
  • add docs links to several screens – #54357


  • Restores “Customize” menu item for non-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. themes and moves for block themes – #54418


  • Add HTTP/3 as a valid 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. protocol. – #54404
  • Bootstrap/Load: Check $_SERVER['SCRIPT_NAME'] exists before passing to strpos() in wp_fix_server_vars()#54142

Build/Test Tools

  • Cache the results of PHP_CodeSniffer across workflow runs – #49783
  • Exclude plugins and non-bundled themes from PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher compatibility scans – #54425
  • Make adjustments to how Quick Draft tests confirm expected behavior – #54409
  • Mock no results remote request in WP_REST_Block_Directory_Controller:: get_items() – #54420
  • Mock remote request for WP_REST_Block_Directory_Controller::get_items()#54420
  • Mock remote request for unknown 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 in WP_REST_Plugins_Controller::create_item()#54420
  • Restore the httpsHTTPS HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes – #54337
  • Update all 3rd 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 to the latest versions – #53363
  • Change default GitHub 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". to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.#54399
  • Update qUnit test fixtures after [52128]#54336

Bundled Theme

  • Display required text field in core themes – #54392
  • Import Twenty Twenty-Two, the new default theme for WordPress 5.9 – #54318
  • Twenty Eleven: Improve comment form styling for required fields – #54408
  • Twenty Nineteen: Apply coding standards fix from running composer format#54392
  • Twenty Twenty-One: Add privacy policy link to footer – #53445
  • Twenty Twenty-One: Correct default image alignment in the editor – #53809
  • Twenty Twenty-One: Prevent printing skip link focus fix when SCRIPT_DEBUG is enabled – #54429
  • Twenty Twenty-Two: Import the assets directory from GitHub – #52081
  • Twenty Twenty-Two: Import the latest changes from GitHub – #54318

Coding Standards

  • Minor alignment fix after [52058]#52058
  • PHP Code style errors – #43700
  • PHP Code style errors – #43700
  • Rename the $gzData argument to $gz_data in WP_Http_Encoding::compatible_gzinflate()#53359
  • Revert accidental image changes in [52171]#54168
  • Revert unrelated change to wp_send_user_request()#43700
  • Use strict comparison in wp-admin/includes/ms.php#47422


  • Don’t output “cancel comment reply link” if comments aren’t threaded – #37267
  • Use get_comment_author() to retrieve the comment author name in get_comment_reply_link()#53678


  • WPDB: Capture error in wpdb::$last_error when insert fails instead of silently failing for 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. data or value too long – #37267


  • Add missing documentation for the $javascript parameter of the wp_inline_script_attributes 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.#53399
  • Avoid using “CPT” instead of “custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept.” – #53399, #54335, #54336
  • List the expected return type first in a few functions – #53399


  • Update SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. props to ignore new asset files – #54337, #53361
  • Update SVN props to ignore new asset files – #54337, #53361
  • Add documentation for the $block_editor_context parameter of the block_editor_rest_api_preload_paths hook – #52920, #53399
  • Site Editor and PHP changes from 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/ 10.1 – 11.9 – #54337
  • Site Editor: Load as full screen by default – #54337
  • Add Navigation Area infrastructure – #54337
  • Add block theme infrastructure – #54335
  • Add get_query_pagination_arrow function to core
  • Add public functions for interacting with global styles & settings – #54336
  • Fix fatal call to add_query_args() – #54337
  • Fix how the Site Editor is linked to – #54337
  • Fix incorrect access of ID field – #54337
  • Global Styles Rest endpoints – #54336
  • Global styles user content escaping – #54336
  • Load iframed assets in Site Editor – #54337
  • Update wordpress packages – #54337
  • Fix Linting error affecting trunk
  • Update wordpress packages – #54337
  • Update wordpress packages – #54337
  • Update block-theme-pl_PL.mo file. – #54336


  • Conditionally enqueue wp-embed only if needed and send ready message in case script loads after post embed windows – #44632, #44306
  • Fix inclusion of wp-embed-template script and style when SCRIPT_DEBUG is disabled – #44632
  • Fix parsing of post embeds in wp_filter_oembed_result() by appending wp-embed script instead of prepending it in get_post_embed_html()#44632

External Libraries

  • Update the regenerator-runtime package to version 0.13.9#54027
  • Update ‘reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.’ and ‘react-dom’ – #54337


  • Add “noopener” to wp_list_bookmarks() output – #53839
  • General: Convert wp_list_filter() into a wrapper for wp_filter_object_list()#53988
  • General: Minor fixes to Global Style related code – #54336

HTTP 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.

  • Ensure value returned from 'http_allowed_safe_ports' is an array to avoid PHP 8+ TypeError fatal error – #54331
  • Introduce 'http_allowed_safe_ports' filter in wp_http_validate_url()#54331


  • Add language switcher on login/registration screens – #43700
  • Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. wrapper for the Global Styles post type description – #54336

Login and Registration

  • Fix failing test for “email already exists” registration error improvement – #53631
  • Improve “email already exists” registration error message – #53631
  • Improve messaging for invalid log-out nonces – #52600
  • Pass $errors parameter to registration_redirect filter – #53992
  • Wrap long usernames in login error message – #37617


  • Add wp_mail_succeeded hook to wp_mail#53826


  • Add “webp” extension to wp.media.controller.Library isImageAttachment#53917
  • Change upload button to a file input for better e2e targeting – #54168
  • 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. modal loads only selected image – #42937
  • Featured image modal loads only selected image – #53765
  • Refine the heuristics to exclude certain images and iframes from being lazy-loaded to improve performance – #53675, #50425
  • Revert media uploader input change in [52059]#54168, #54411
  • Add audible notice on menu item add or remove – #53840

Options, 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. APIs

  • Correct docs for $_meta_value parameter in xxx_{$meta_type}_meta 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.#53102

Posts, Post Types

  • Add $old_status parameter to {$new_status}_{$post->post_type} action – #36180
  • Mark the wp_global_styles post type as _builtin#54336
  • Remove gutenberg text domain from post type strings – #54336, #54337
  • Update _edit_last meta when posts are edited in bulk – #42446

Quick/Bulk Edit

  • Disable auto-correct for slugs – #50499

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 /wp/v2/block-navigation-areas endpoint – #54393
  • Add batch support for posts and terms controllers – #53063
  • Expose the site icon in the REST API index – #52321
  • Introduce Menu management endpoints – #40878
  • Regenerate wp-api-generated.js after [52068]#53063
  • Remove experimental block menu item types – #40878

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.

  • Introduce wp_get_post_revisions_url() to get URL for editing revisions – #39062

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.

  • Allow get_*_*_link() and edit_term_link() functions to accept a term ID, WP_Term, or term object – #50225
  • Change some static strings to registration labels – #43060
  • Clarify the taxonomy labels for customizing the field descriptions on Edit Tags screen: – #43060
  • Display update notices when adding terms – #42937
  • Document that the get_terms filter can have null for $taxonomies#54222


  • Fix “undefined index: 00” when archive month query is empty in wp_title()#31521


  • Avoid fatal error loading adminadmin (and super admin) styles when SCRIPT_DEBUG is false#54401, #54336
  • Check both parent and child themes for a theme.json file – #54401
  • Force a scrollbar on the Themes page to prevent visual shake on hover – #53478
  • Twenty Twenty-Two is now the default theme – #54318
  • Update 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. classes for WordPress 5.9 – #54336
  • Hide Customize from admin bar when using a block theme – #54337


  • Deactivate the Gutenberg plugin if its version is 11.8 or lower – #54405
  • Update screen reader text counts in adminbar – #29022


  • Introduce wp_list_users() function – #15145
  • Prevent 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. when using capability checks during determine_current_user on multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site#53386


  • Use isset() in WP_Widget:: display_callback() to support ArrayIterator and ArrayObject#52728
  • Wraps long 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. titles in classic Widgets screen – #37451


Please note that it was the most prolific week since we restarted the Week in Core blogblog (versus network, site) posts last year!

Thanks to the 204 (!) people who contributed to WordPress Core on Trac last week: @hellofromTonya (28), @audrasjb (21), @sabernhardt (14), @desrosj (11), @sergeybiryukov (11), @costdev (10), @johnbillion (9), @oandregal (8), @spacedmonkey (7), @peterwilsoncc (7), @poena (6), @swissspidy (6), @afercia (6), @youknowriad (6), @noisysocks (5), @davidbaumwald (5), @hellofromtonya (4), @birgire (4), @TimothyBlynJacobs (4), @SergeyBiryukov (4), @mukesh27 (3), @Mamaduka (3), @adamsilverstein (3), @antonvlasenko (3), @aristath (3), @pento (3), @dd32 (3), @chaion07 (3), @westonruter (3), @jorbin (3), @TobiasBg (2), @chrisvanpatten (2), @joedolson (2), @soean (2), @dilipbheda (2), @manishamakhija (2), @kjellr (2), @garrett-eclipse (2), @flixos90 (2), @kafleg (2), @Clorith (2), @dlh (2), @Boniu91 (2), @justinahinon (2), @ryelle (2), @ocean90 (2), @mte90 (2), @hareesh-pillai (2), @jrf (2), @webcommsat (2), @drewapicture (2), @tobifjellner (2), @bgardner (1), @rviscomi (1), @sourav926 (1), @jonoaldersonwp (1), @azaozz (1), @briceduclos (1), @colorful-tones (1), @tweetythierry (1), @pbearne (1), @sebastianpisula (1), @aaroncampbell (1), @kapilpaul (1), @xknown (1), @chriscct7 (1), @donmhico (1), @gziolo (1), @malthert (1), @greenshady (1), @nacin (1), @rohan013 (1), @bernhard-reiter (1), @ntsekouras (1), @tw2113 (1), @Nikschavan (1), @keyur5 (1), @paaljoachim (1), @jdy68 (1), @dgwyer (1), @almendron (1), @kallookoo (1), @zieladam (1), @palmiak (1), @andraganescu (1), @dingo_d (1), @isabel_brison (1), @utz119 (1), @kadamwhite (1), @scruffian (1), @NateWr (1), @schlessera (1), @Spacedmonkey (1), @ribaricplusplus (1), @talldanwp (1), @wpscholar (1), @pgking (1), @andynick (1), @richtabor (1), @kraftbj (1), @dimadin (1), @gregrickaby (1), @ellenbauer (1), @jffng (1), @dansoschin (1), @karmatosed (1), @littlebigthing (1), @williampatton (1), @onemaggie (1), @matveb (1), @mburridge (1), @mtoensing (1), @nickcernis (1), @nielslange (1), @wparslan (1), @georgestephanis (1), @davidkryzaniak (1), @lukecarbis (1), @galbaras (1), @jdgrimes (1), @justindocanto (1), @kwisatz (1), @liammitchell (1), @lucasw89 (1), @nettsite (1), @dpegasusm (1), @nlpro (1), @procodewp (1), @psufan (1), @richardfoley (1), @skunkbad (1), @travisnorthcutt (1), @fpcsjames (1), @asif2bd (1), @zoiec (1), @ianhayes94 (1), @david.binda (1), @mista-flo (1), @jeffpaul (1), @bravokeyl (1), @gkloveweb (1), @hitendra-chopda (1), @ovann86 (1), @anthonyeden (1), @pankajmohale (1), @sabrib (1), @xkon (1), @dlt101 (1), @mnelson4 (1), @datainterlock (1), @anandau14 (1), @woodyhayday (1), @henrywright (1), @aadilali (1), @jeremyescott (1), @davidmosterd (1), @herregroen (1), @michelwppi (1), @kebbet (1), @iaaxpage (1), @mclaurent (1), @theMikeD (1), @paulschreiber (1), @jeremyfelt (1), @dontgo2sleep (1), @swb1192 (1), @afragen (1), @JeffPaul (1), @Collizo4sky (1), @antpb (1), @hasanuzzamanshamim (1), @jigneshnakrani (1), @sourovroy (1), @rachelbaker (1), @soniakash (1), @benitolopez (1), @danielbachhuber (1), @PieWP (1), @szaqal21 (1), @mjulian7 (1), @pputzer (1), @mamaduka (1), @karpstrucking (1), @mcjambi (1), @ashfame (1), @annezazu (1), @calebwoodbridge (1), @guillaumeturpin (1), and @timothyblynjacobs (1).

Congrats and welcome to our 36 (!!) new contributors of the week: @manishamakhija, @rviscomi, @briceduclos, @keyur5, @kallookoo, @pgking, @andynick, @dansoschin, @mburridge, @mtoensing, @nickcernis, @wparslan, @justindocanto, @kwisatz, @liammitchell, @lucasw89, @nettsite, @dpegasusm, @psufan, @skunkbad, @zoiec, @ianhayes94, @anthonyeden, @sabrib, @dlt101, @datainterlock, @woodyhayday, @aadilali, @mclaurent, @dontgo2sleep, @swb1192, @hasanuzzamanshamim, @benitolopez, @mjulian7, @mcjambi, @calebwoodbridge. ♥️

Core committers: @hellofromtonya (23), @desrosj (18), @noisysocks (14), @joedolson (12), @sergeybiryukov (8), @jorgefilipecosta (7), @davidbaumwald (6), @peterwilsoncc (5), @timothyblynjacobs (5), @westonruter (4), @johnjamesjacoby (2), @jorbin (1), @johnbillion (1), @spacedmonkey (1), @adamsilverstein (1), @ocean90 (1), @youknowriad (1), @flixos90 (1), @antpb (1), @jffng (1), and @ryelle (1).

#5-8-2, #5-9, #core, #week-in-core