A Week in Core – November 22, 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 15 and November 22, 2021.

  • 76 commits
  • 138 contributors
  • 48 tickets created
  • 6 tickets reopened
  • 73 tickets closed

The Core team is currently working on the next major release, 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


  • 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

Build/Test Tools

  • Add the ruleset file to the cache key for PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher compatibility scans – #54425
  • Cache the results of PHP_CodeSniffer across workflow runs – #49783
  • 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

Bundled Themes

  • Update the “Tested up to” 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. to 5.9#53797
  • Twenty Nineteen: Apply coding standards fix from running composer format#54392
  • Twenty Sixteen: Correctly align columns within table blocks as configured in the editor – #54317
  • Twenty Twenty-One: Check if anchor exists before triggering in-page navigation – #53619
  • Twenty Twenty-One: Correct description of Dark Mode in the CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.#53892
  • Twenty Twenty-One: Prevent notice thrown in twenty_twenty_one_get_attachment_image_attributes()#54464
  • Twenty Twenty-One: Remove RSS feedRSS Feed RSS is an acronym for Real Simple Syndication which is a type of web feed which allows users to access updates to online content in a standardized, computer-readable format. This is the feed. 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. icon link – #52880
  • Twenty Twenty-Two: Import the latest changes from GitHub – #54318
  • Twenty Twenty-Two: Sync updates from GitHub – #54318

Coding Standards

  • Wrap some long lines in js/_enqueues/admin/post.js per the JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. coding standards for better readability – #53359


  • Change new comment required text class – #16206
  • Don’t output “cancel comment reply link” if comments aren’t threaded – #37267
  • Fix PHP Notice “trying to get property of non-object” in comments_open() and pings_open()#54159

Commit Standards


  • Check if the $args[0] value exists in wpdb::prepare() before accessing it – #54453


  • Add missing null allowed type for the $id parameter of wp_set_current_user()#53399
  • Add missing parameters in in_plugin_update_message-{$file} 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.#40006
  • Corrections relating to types used in inline documentation for comment ID and site ID proprties – #53399
  • Improve the documentation for registering block patterns and block pattern categories – #53399
  • Remove instances of the “eg.” abbreviation in favor of “example” or “for example” – #53330
  • Restore [51733], accidentally reverted in [52212]#40006
  • Update documentation for the $plugin_data parameter of various 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.#53399
  • Various corrections and improvements relating to types used in inline documentation – #53399


  • Add missing label to new-post-slug input on Classic Editor – #53725
  • Check the correct post type support property for initial_edits#53813
  • Do not provide initial_edits for properties that are not supported by the current post type – #53813
  • Fix fatal call to add_query_args() – #54337
  • Fix how the Site Editor is linked to – #54337
  • Fix incorrect access of ID field – #54337
  • Load iframed assets in Site Editor – #54337
  • Update wordpress packages – #54337

External Libraries

  • Update the regenerator-runtime package to version 0.13.9#54027


  • Add additional support for single and nestable tags in force_balance_tags()#50225

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

  • Remove empty ? when only anchor remains in add_query_arg()#44499


  • Use correct global in wp_kses_xml_named_entities()#54060

Login and Registration

  • Wrap long usernames in login error message – #54168
  • auto-focus the reset password field – #40302


  • Add support for v1 and v2 gallery block in get_post_galleries()#43826
  • 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
  • Move dismiss upload errors button after errors – #42979
  • Revert media uploader input change in [52059]#42937
  • improve error message for failed image uploads – #53985
  • Add audible notice on menu item add or remove – #53840

Posts, Post Types

  • Increment post_count option value during blogblog (versus network, site) creation – #54462, #53443
  • Increment post_count option value only 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 installations – #54462
  • Multisite: Decrement post_count option value when a post is deleted – #53443
  • Use global post as the default for wp_get_post_parent_id()#48358


  • Correct and standardise 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. query documentation – #53467

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

  • Make the templates controller follow core REST patterns – #54422
  • Remove experimental block menu item types – #40878

Script Loader

  • Document path as an accepted value for $key in wp_style_add_data()#53792

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
  • Clarify the taxonomy labels for customizing the field descriptions on Edit Tags screen: – #43060


  • 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


  • Refine “Edit site” link.php – #54441


  • Add timezone info to last checked update time – #53554
  • Correct the weekly cron event for clearing the temp-backup directory: – #51857
  • Deactivate 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/ 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 if its version is 11.8 or lower – #54405
  • Differentiate en_US version strings from localized ones – #53710
  • Improve the accuracy of the auto_update_{$type} filter docblockdocblock (phpdoc, xref, inline docs)#53330
  • Remove 5.8 function and fix deactivate Gutenberg plugin version compare < 11.9 – #46371


  • 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 multisite – #53386


  • Call wp_load_translations_early() in wpdb::_real_escape()#32315
  • Call wp_load_translations_early() in wpdb::query() and wpdb::process_fields()#32315
  • 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


  • Wraps long widget titles in classic Widgets screen – #37451


Thanks to the 138 (!) people who contributed to WordPress Core on Trac last week: @hellofromTonya (20), @sabernhardt (16), @audrasjb (13), @costdev (10), @sergeybiryukov (7), @johnbillion (7), @desrosj (6), @poena (5), @afercia (5), @SergeyBiryukov (4), @peterwilsoncc (4), @davidbaumwald (4), @birgire (4), @jeffpaul (3), @dilipbheda (3), @henry.wright (3), @pbearne (2), @TimothyBlynJacobs (2), @swissspidy (2), @shaunandrews (2), @glendaviesnz (2), @antpb (2), @kjellr (2), @talldanwp (2), @pento (2), @ramonopoly (2), @manishamakhija (2), @melchoyce (2), @dlh (2), @jrf (2), @dd32 (2), @chaion07 (2), @hareesh-pillai (2), @joedolson (2), @anthonyeden (1), @anandau14 (1), @asif2bd (1), @dpegasusm (1), @datainterlock (1), @mnelson4 (1), @ovann86 (1), @dlt101 (1), @xkon (1), @sabrib (1), @pankajmohale (1), @ianhayes94 (1), @hitendra-chopda (1), @gkloveweb (1), @drewapicture (1), @bravokeyl (1), @fpcsjames (1), @nettsite (1), @galbaras (1), @henrywright (1), @TobiasBg (1), @chrisvanpatten (1), @sourovroy (1), @jorbin (1), @szaqal21 (1), @PieWP (1), @danielbachhuber (1), @benitolopez (1), @ocean90 (1), @soniakash (1), @rachelbaker (1), @jigneshnakrani (1), @zoiec (1), @jdgrimes (1), @woodyhayday (1), @travisnorthcutt (1), @skunkbad (1), @richardfoley (1), @psufan (1), @procodewp (1), @nlpro (1), @david.binda (1), @lukecarbis (1), @lucasw89 (1), @liammitchell (1), @kwisatz (1), @justindocanto (1), @mista-flo (1), @celloexpressions (1), @Mamaduka (1), @kafleg (1), @umesh84 (1), @robertghetau (1), @musabshakeel (1), @rixeo (1), @marybaum (1), @felipeloureirosantos (1), @tmatsuur (1), @hasanuzzamanshamim (1), @wetah (1), @ravipatel (1), @mukesh27 (1), @westonruter (1), @mjaschen (1), @saju4wordpress (1), @otto42 (1), @joen (1), @flixos90 (1), @clucasrowlands (1), @beafealho (1), @luminuu (1), @netweb (1), @richtabor (1), @ovidiul (1), @h71 (1), @andy-schmidt (1), @mkaz (1), @noisysocks (1), @pbiron (1), @wparslan (1), @zieladam (1), @hellofromtonya (1), @benjaminanakenam (1), @webcommsat (1), @zodiac1978 (1), @tellyworth (1), @takahashi_fumiki (1), @russhylov (1), @lynk (1), @youknowriad (1), @donmhico (1), @tobiasbg (1), @danielpost (1), @nacin (1), @alexislloyd (1), @vdwijngaert (1), @ComputerGuru (1), @benjamingosset (1), @Presskopp (1), @thimalw (1), @dufresnesteven (1), @kingkero (1), @clorith (1), and @spacedmonkey (1).

Congrats and welcome to our 8 new contributors of the week: @robertghetau, @musabshakeel, @mjaschen, @saju4wordpress, @clucasrowlands, @russhylov, @lynk, @danielpost ♥️

Core committers: @hellofromtonya (14), @audrasjb (13), @desrosj (12), @joedolson (10), @sergeybiryukov (9), @noisysocks (6), @johnbillion (3), @jffng (2), @spacedmonkey (2), @davidbaumwald (1), @peterwilsoncc (1), @adamsilverstein (1), @ryelle (1), and @timothyblynjacobs (1).

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