Week in Core, October 5 – 18, 2016

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 [38736-38810]. Here are the highlights:

  • 74 commits
  • 76 contributors
  • 129 tickets created
  • 20 tickets reopened
  • 124 tickets closed

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


  • Accessible Tags autocomplete: [38797] #33902
  • Better consistency for the Media, Add Plugins, and Add Themes toolbars. [38795] #38010

Build/Test Tools

  • Continue eliminating randomness in tests. [38763] #37371
  • Begin eliminating unnecessary randomness in tests. [38762] #37371
  • Revert [38759]. PHPUnit’s @requires syntax was introduced in PHPUnit 3.7, but the tests for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.2 use PHPUnit 3.6 because it’s the latest version that supports PHP 5.2. [38761] #38256
  • Make use of PHPUnit’s @requires notation. [38759] #38256
  • 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 an unnecessary duplicate HTTP request in the HTTP tests. [38758] #30017
  • HTTP API: Convert the POST redirect test to use a dataProvider in order for its speed to be more accurately measured. [38757] #38237


  • Allow _canonical_charset() to handle mixed-case strings. [38809] #38337


  • When checking comments, returned error object should include HTTP status code. [38783] #36901
  • Abstract die() calls from comment submission routine. [38778] #36901
  • Pass $comment to the comment_max_links_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.. [38748] #37955
  • Account for the comment_order option in get_page_of_comment(). [38740] #31101
  • Improve check for previous comments for authenticated users in check_comment(). [38738] #28603


  • Implement customized state persistence with changesets. [38810] #28721, #31089, #30937, #31517, #30028, #23225, #34142, #36485
  • Skip triggering initial click on pages section for available nav menu items if already open. [38807] #36984
  • Move Pages below Custom Links in available nav menu items panel. [38794] #36984
  • Show Pages section first and pre-expanded in list of available nav menu items. [38767] #36984
  • Improve message displayed in widgets panel when there are no 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. areas currently displayed in the preview. [38766] #36922
  • Ensure customize_validate_{$setting->id} filters apply on input post values for WP_Customize_Setting subclasses that neglect to apply the filter themselves. [38765] #37638
  • Add workaround for Safari 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. causing preview frame to be unscrollable via mousewheel after a refresh. [38742] #38149



  • Add a role button to the Tags 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. box 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.) cloud links. [38800] #38318
  • Do not send the request for releasing the post lock on unload when post_ID or active_post_lock is missing. [38772] #38271


  • Docs: In get_pages() and wp_list_pages(), note that post_status argument can also be an array. [38798] #38136
  • XML-RPC: Re-add a global $wpdb missed in [38768]. [38775] #37699
  • Restore usage of $wpdb, instead of $this->db. [38768] #37699
  • Login: Don’t rely on wp_is_mobile() for functionality. [38739] #33704


  • Media modal: make it possible to reorder images by dragging on devices with both touch screen and mouse support. [38793] #31652
  • Correct the hostname used in the wp_get_attachment_metadata() test. [38760] #36246


  • Fix the posts-categories quick search. [38799] #38324
  • 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): Improve the UIUI User interface controls to move the Menu items. [38770] #35578
  • Hide controls in the search tab if no items are found. [38754] #35576
  • Do not show trashed posts in nav menus. [38744] #19038


  • Emoji: Update Emoji CDN filter default for resource hints. [38764] #38724
  • Updates for 4.6. Merge of and to the 4.6 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"..

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: Maintain switched state in site icon/logo functions. [38786] #38253
  • Multisite: Clarify that get_site_by_path() does not return exact matches. [38781] #38152


  • Add new pre_trackback_post action before a trackback is added to a post. [38791] #37007
  • Trackbacks: Allow the error message strings passed to trackback_response() to be translatable. [38741] #38214


  • Docs: Improve documentation for install_plugin_install_status(). [38805] #36912
  • Correctly display the current 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 the plugin editor. [38745] #24122, #17552

Posts, Post Types

  • Docs: Document global variables used by get_the_content(). [38746] #37173


  • Allow the hyphen-prefix-for-search-exclusion feature to be disabled by filter. [38792] #38099

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

Rewrite Rules

  • Make sure rewrite rules are not written until wp_loaded has fired [38751] #37892


  • Disregard the order of capabilities when testing that single site and multisite capability tests match. [38802] #38191
  • Add tests for all user roles that check custom capabilities that do not have any form of handling (eg. in a map_meta_cap filter). [38769] #38191


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.

  • Cache results of term count queries. [38784] #38295
  • Specify taxonomy when populating cached object terms. [38779] #37291
  • Avoid a fatal error in the_tags() in the event that get_the_term_list() returns a WP_Error. [38777] #37291
  • Better error handling when fetching object terms from cache. [38776] #37291
  • On wp-admin/term.php, don’t show a ‘Back to’ link which links to the current page. [38753] #37573
  • Remove paged argument from referer and add it only if current page is greater than 1. [38752] #38194
  • Don’t drop term order and current page when bulk deleting terms. [38750] #38194
  • Introduce WP_Taxonomy and use it in register_taxonomy() and unregister_taxonomy(). [38747] #36224, #36217
  • Docs: Improvements to register_taxonomy() docblockdocblock (phpdoc, xref, inline docs). [38737] #38007


  • Improve the inline documentation for the get_*_template() functions by providing examples instead of verbose explanations. [38789] #38249, #37770
  • Do not show an update button if there’s no update package. [38788] #37774
  • Remove paged.php from the theme template hierarchy. [38755] #38162


  • Remove the calls to getBookmark() and moveToBookmark() in IE. [38808] #38335
  • When editing pages, add body class with the page template, or page-template-default. [38803] #37599
  • Restore the monospace font in textareas in the TinyMCE UI. Make it same as in the Text editor. [38801] #38125
  • Prevent applying Indent and Outdent while an image with a caption is selected. [38796] #38313
  • Prevent iOSiOS The operating system used on iPhones and iPads. Safari from expanding the iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. width beyond the container width. [38782] #38289
  • Update the charmap plugin to the latest dev. version. [38780] #37936
  • Add support for custom dashicon for wp.mce.View.setLoader(). [38774] #37900
  • Update to 4.4.3, changelog: ​https://www.tinymce.com/docs/changelog/#version443-september12016 [38773] #38081, #38245, #37507, #37808, #38000
  • Allow pasting in image captions. Remove blocks and insert “ tags instead, also remove elements that would break the caption like other images, video, audio, etc. [38756] #36211


  • Show correct time of last checked update. [38743] #37554
  • Updates: Remove the ‘Download’ button on the Updates screen. [38736] #36811


  • Use the role name instead of the role display name when fetching the list of users with no role. This avoids false positives when dealing with user roles that, for example, contain spaces in the display name. [38787] #38234

Thanks to @aaroncampbell, @abrightclearweb, @achbed, @adamsilverstein, @afercia, @akibjorklund, @aniketpant, @azaozz, @birgire, @bobbingwide, @boonebgorges, @boonebgorges for review, @celloexpressions, @Cheffheid, @choongsavvi, @choongsavvii, @Chouby, @chriseverson, @clarionwpdeveloper, @dd32, @desrosj, @dlh, @dmsnell, @DrewAPicture, @dshanske, @dungengronovius, @flixos90, @goranseric, @helen, @jamesacero, @jayarjo, @jdgrimes for initial patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing., @jeremyfelt, @johnbillion, @jonathanbardo, @jorbin, @karmatosed, @koenschipper, @kraftbj, @lgedeon, @mattking5000, @MattyRob, @michalzuber, @mihai2u, @mikeviele, @morganestes, @mt8.biz, @needle, @ocean90, @pbearne, @pdufour for research, @pento, @peterwilsoncc, @PieWP for initial patch, @procodewp, @rachelbaker, @ryankienstra, @ryankienstra for initial patc, @sayedwp, @SergeyBiryukov, @solarissmoke, @stevenlinx, @stubgo, @sudar, @swissspidy, @tristangemus, @tristangemus for initial patch, @tywayne, @tyxla, @utkarshpatel, @valendesigns, @voldemortensen, @webmandesign, @websupporter, @westonruter, and @WraithKenny for their contributions!

#4-7, #week-in-core