Week in Core, April 19th – April 25th 2017

Welcome back the latest issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., covering changes [40476-40556]. Here are the highlights:

  • 81 commits
  • 29 contributors
  • 90 tickets created
  • 11 tickets reopened
  • 48 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. timeline for the period above. The following is a summary of commits, organized by component.

Code Changes


  • List Tables: After [38703], [38706], and [40118], adjust the jQuery selector to make the selection of a range of checkboxes work again. [40512] #40056
  • 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): Make some Widgets buttons real buttons. [40480] #35622, #31476

Build/Test Tools

  • Feeds: Remove an incorrect usage of sizeof() in a helper class used during unit testing of XML element handling. [40555] #40109
  • Add Composer files to the cache on Travis. [40554] #40539
  • 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. various recent changes to the 4.7 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".. [40547] #40539, #39822, #40548
  • Remove HHVM from the test infrastructure on Travis. [40546] #40548
  • Remove more unnecessary test skipping when erroneous situations occur. [40544] #40533
  • Introduce skipWithoutMultisite() and skipWithMultisite() methods into the test suite. [40543] #40531
  • More tweaks to the deprecated calls assertion. This needs to be triggered when there are unexpected deprecated calls or wrongdoings too. [40542] #40538
  • Only perform an assertion for deprecated calls and wrongdoings if any are expected. [40541] #40538
  • Move the setExpectedException() method into the WP_Ajax_UnitTestCase class to avoid a fatal error when PHPUnit 3.6 is in use. [40539] #39822
  • Add support for PHPUnit 6+. [40536] #39822
  • Ensure that WP_UnitTestCase::expectedDeprecated() performs an assertion to avoid risky test notices. [40535] #40538
  • Be strict about tests that do not test anything. [40534] #40538
  • Remove unnecessary checks and skips that should instead cause failures if they ever fail. [40533] #40533
  • Convert more test skipping into hard failures. These dependencies should all be present when testing. [40532] #40533
  • Correct an incorrect ms- group name. [40530] #40531
  • Add some 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. debugging to the Travis config so we can determine which locales are available to test with. [40528] #40533, #19861
  • Enable verbose mode in PHPUnit so we can see which tests are being skipped, and now that the number of skipped tests has been lowered. [40527] #40533, #40531
  • Don’t trigger a skipped test when the built version of wp-embed.min.js isn’t present. [40526] #34698, #40533
  • Replace test skipping with actual assertions when dealing with the DISALLOW_UNFILTERED_HTML, DISALLOW_FILE_MODS, and DISALLOW_FILE_EDIT constants. [40525] #40533
  • Remove more skipped tests that should actually be failures if their conditions aren’t satisfied. [40524] #40533
  • Remove ancient UT ticket handling. [40523] #40533
  • Add some more tests to the ms-required and ms-excluded groups. [40522] #40531
  • Introduce ms-required and ms-excluded groups for tests. [40520] #40531
  • Don’t skip tests when php.net or dev.mysql.com are unreachable. [40519] #40533
  • Avoid skipping canonical tests that are connected to open Trac tickets. [40518] #30284, #40534
  • Canonical: Don’t skip tests if the test data is 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.. [40517] #40533




  • TinyMCE: Fix cursor position after updating a wpview node. Fix hiding the inline toolbar on editor blur. [40482] #40480
  • Define $suffix before using it in _WP_Editors::print_tinymce_scripts(). [40477] #40479, #35760
  • Provide 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. for the editor to be dynamically instantiated via JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. First run. [40476] #35760


  • Accessibility: Make Safari 10 + VoiceOver announce repeated, identical, wp.a11y.speak() messages. [40479] #36853


  • Fix typo in help text on Reading Settings screen. [40540] #40530


  • Add 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. to sub-menu class in nav menus. [40537] #36163

Networks and Sites

  • 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: Add $network_id parameter to wp_update_network_counts(). [40486] #40386, #38699
  • Multisite: Add $network_id parameter to wp_update_network_user_counts(). [40485] #40349, #38699
  • Multisite: Add $network_id parameter to wp_update_network_site_counts(). [40484] #37528, #38699
  • Multisite: After [37918] add support for retrieving custom site properties set by the site_details filter. [40478] #40458

Posts, Post Types

  • Correct the fallback value for the label_count argument of register_post_status(). [40516] #38686


  • Remove a useless 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.. [40545] #35907, #38373

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.

  • Restore support for taxonomy ‘args’ override when querying object terms. [40514] #40496
  • Docs: Improve @param and @return entries for wp_get_post_categories(), wp_get_post_tags(), and wp_get_post_terms(). [40483] #40481



  • Improve the News dashboard 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. no-js notice. [40556] #40529

Thanks to @csloisel, @afercia, @Arena94, @azaozz, @bhargavbhandari90, @boonebgorges, @celloexpressions, @danielbachhuber, @darthaud, @dd32, @flixos90, @gitlost, @imath, @iseulde, @johnbillion, @johnjamesjacoby, @littler.chicken, @miyauchi, @ocean90, @peterwilsoncc, @philipjohn, @PieWP, @raisonon, @SergeyBiryukov, @swissspidy, @theMikeD, @timmydcrawford, @westonruter, and @xrm for their contributions!