Week in Core, Apr 5 – Apr 12 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 [37161-37190]. Here are the highlights:

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on trac timeline for the period above.

Note: If you want to help write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update 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/. channel.

Code Changes

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)

  • Remove redundant title attribute from wp_star_rating(). [36092] #35141
  • Remove the 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. limit title attribute from the Publish box. [36053] #35029
  • Remove title attributes from the updates links on the 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 and Themes list tables. [36032] #35167
  • Remove title attributes and improve accessibility on the “no-js” Menus screen. [36016] #35134
  • Remove title attributes from the Theme browser. [36015] #35140
  • Improvements for the Authentication Check modal dialog “Close X”. [36014] #35142


  • In WP::handle_404(), make sure $wp_query->post is a WP_Post object before cloning it. Merges [35994] to the 4.4 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".. [36064] #35013


  • Output correct canonical links for paged posts when not using pretty permalinks. [36103] [36096] #34890


  • Return early from wp_update_comment_count() if there is not a valid post. [36115] #34977
  • Respect approval status when determining comment page count in comments_template().[36041] [36040] #8071, #35068
  • When a comment is submitted, ensure the user_ID element in the array that’s passed to the preprocess_comment 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. gets populated.[36039] [36038] #34997



  • Hash notate properties and defaults for the benefit of $args parameter documentation for WP_Customize_Control::__construct(). [36114] #32246
  • Correct a funky docblockdocblock (phpdoc, xref, inline docs) in funky_javascript_fix(). [36111] #32246
  • Improve documentation for wp_admin_css_color(). [36107] #34857
  • Fix typo in a comment in wp_rand(). [36102] #35228
  • Clarify that get_post_types() accepts 'not' as its $operator parameter. [36091] #35225
  • Clarify that wp_filter_object_list() accepts 'not' as its $operator parameter. [36090] #35225
  • Correct @return type for rest_parse_date(). [36086] #35224
  • Correct @return type for count_user_posts(). [36085] #35222
  • Miscellaneous docblock code quality tweaks. [36074] #32246
  • @see != @since. [36073] #32246
  • Properly mark the optional $redirect, $network_wide, and $silent parameters as such in the DocBlock for activate_plugin(). [36072] #32246
  • Add missing @since and properly mark the optional $type parameter as such in the DocBlock for the deprecated get_others_unpublished_posts() function. Introduced in [5707]. [36071] #32246
  • Properly mark the $exclude_zeros parameter in the DocBlock for get_editable_user_ids() as optional. Also [36070] #32246
  • Miscellaneous docblock corrections. [36069] #32246
  • Fix a typo in the 4.4.0 changlog entry in the intermediate_image_sizes_advanced hook doc. [36054] #35190
  • Add missing notations for the optional $tab_index and $extended parameters in the DocBlock for the deprecated the_editor() function. [36033] #32246
  • Add missing parameter and return notations to the DocBlock for the deprecated get_usernumposts() function. [36030] #32246
  • Add documentation to wp-blogblog (versus network, site)-header.php. [36029] #35161
  • Add missing parameter and return notations in the DocBlock for get_profile(). [36028] #32246
  • Properly mark the $classname parameter as optional. [36027] #32246
  • Add missing parameter and return notations to the DocBlock for the deprecated wp_specialchars() function. [36026] #32246
  • Add missing parameter notations and descriptions in the DocBlock for get_link(). [36025] #32246
  • Add missing parameter and return notations in the DocBlock for the deprecated _nc() function. [36024] #32246
  • Add a missing summary, parameter, and return descriptiosn to the DocBlock for the deprecated function, get_linkrating(). [36023] #32246
  • Add a missing notation for the $gmt_time parameter in the DocBlock for spawn_cron(). [36022] #32246
  • Add missing DocBlocks for hash_hmac() and _hash_hmac(). Introduced in [18111]. [36021] #32246
  • Fix inline comment syntax in _mb_strlen(), an internal compat method for mb_strlen(). [36020] #32246
  • Add missing DocBlocks for mb_strlen() and _mb_strlen(). Introduced in [32114]. [36019] #32246
  • Fix inline comment syntax in _mb_substr(), an internal compat method for mb_substr(). [36018] #32246
  • Add missing DocBlocks for mb_substr() and _mb_substr(). Introduced in [17621]. [36017] #32246
  • Add missing parameter and return descriptions to the DocBlocks for _wp_object_name_sort_cb() and _wp_object_count_sort_cb(), both uasort() callbacks. [36013] #32246
  • Add a missing notation for the $context parameter in the DocBlock for _nx_noop(). [36012] #32246
  • Fix the syntax for the get_previous_post_link() DocBlock to ensure it’s read and parsed as such instead of as a multi-line comment. [36011] #32246
  • Add a missing summary, description, and @since version to the DocBlock for wp_redirect_admin_locations(). Introduced in [19880]. [36010] #32246
  • Add a missing notation for the $bookmark_id parameter in the DocBlock for clean_bookmark_cache(). [36009] #32246
  • Fix copy/paste error in wp_remote_retrieve_cookies() description. [36002] #35157


  • remove the format_for_editor filter from the_editor_content after it runs as the next editor instance on the same page may not need it. [36062] #28403


  • Remove RDIO from oEmbed providers RDIO is shutting down. ?https://www.rdio.com/farewell/ [36066] [36007] #35152
  • Don’t show embed discovery link on a static front pageStatic Front Page A WordPress website can have a dynamic blog-like front page, or a “static front page” which is used to show customized content. Typically this is the first page you see when you visit a site url, like wordpress.org for example.. [36060] [36059] #35194

External Libraries


  • Allow map_deep() to work with object properties containing a reference.[36101]  [36100] #22300, #35058
  • Transform & into & in 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.) attributes. [36037][36036] #35008

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.

  • In wp_maybe_decline_date(), bail early if translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions are not available, e.g. in SHORTINIT mode. Merges [35880] to the 4.4 branch. [36063] #34967




  • Upgrade PHPMailer from 5.2.10 to 5.2.14. The full list of changes is available here: ?https://github.com/PHPMailer/PHPMailer/compare/v5.2.10…v5.2.14 [36083] #35212


  • When creating srcset do not exclude the image size which is in the src attribute even when it is larger than max_srcset_image_width. [36110] #35108
  • Revert [35804]. This change has unintended side effects, notably that media URLs in the adminadmin (and super admin) area now unexpectedly use the https scheme. [36061] #13941, #35120
  • Fix calculations when determining whether to include particular image file in srcset. [36031] #34955


  • Avoid a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Notice when a menu contains a now unregistered post type archive. [36095] #34449
  • Bring back line break between menu items. Reverts [34321].[36082] [36081] #35107
  • Avoid a PHP notice when trying to access the post_parent property of hierarchical post type nav menu items. Merges [35876] to the 4.4 branch. [36044] #34446


Posts/Post Types

  • Improve post-filter sanitization of excluded terms in get_adjacent_post(). [36079] #35211


  • Re-initialise any dynamically-added public query vars before running the public query vars test. [36051] [36048] #35115
  • Introduce a 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. which will fail when new public query vars are introduced without also updating the test. [36046] [36045] #35115
  • Remove title from the public query vars list. [36035] [36034] #35115


  • = is a reserved character in shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. names, mark it as such.[36098] [36097] #34939

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.

  • Force non-public taxonomies to have a query_var of false. [36109] [36108] #35089
  • Pass object ids to delete_* actions. [36080] #35213
  • Move excluded_terms filter in get_adjacent_post(). [36078] #9571, #35211
  • Respect $_wp_suspend_cache_invalidation in clean_object_term_cache(). [36076] #35208
  • Order terms by ‘name’ when populating object term cache. [36057] [36056] #28922, #35180
  • Add current-cat-ancestor class to ancestor items in wp_list_categories(). Pairs nicely with current-cat-parent. [36008] #10676
  • Ensure that wp_list_categories() supports comma-separated lists for ‘exclude’ and ‘exclude_tree’. [36006] [36005] #35156
  • Ensure get_terms() results are unique when using ‘meta_query’. [36004] [36003] #35137


  • After [36100] use an object style which is compatible with PHP5 get_object_vars(). [36118] [36117] #35058
  • When testing the utf8mb4 charset, ensure that the current 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/. server has utf8mb4 support. [36116] #35249
  • Help Tab Order should be based on the Priority Argument. [36104] [36089] #35215, #33941
  • Tests: Use the correct URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in some shortcode tests. [36099] #
  • Move get_adjacent_post() tests to their own file. [36077] #35211
  • Use the default_storage_engine MySQL option on newer MySQL versions. [36055] #34692
  • Correct the public query vars test for the 4.4 branch. [36052] #35115
  • Prevent role capability pollution in Tests_Post_GetPostsByAuthorSql::test_user_has_access_only_to_private_posts_for_certain_post_types(). [36050] #
  • Fix all the things. [36049] #30017, #32394
  • Shave a second off the user capability tests by reusing its user fixtures. [36047] #30017, #32394


  • Add singular to the list of body classes when viewing a single post object. Adds tests [36112] #35164
  • Break $wp_file_descriptions array into sections and reorder for consistency and readability. [36088] #35223
  • Add taxonomy.php, home.php, front-page.php, date.php, and singular.php to file descriptions. [36087] #35223


  • In Comments link, replace title attribute containing the number of pending comments with a screen reader text. [36093] #34895

Twenty Fifteen

  • Add left margin for lists inside blockquotes in editor-style.css. [36075] #33380


  • Don’t continue checking a password reset key, if the hash is empty. This [36084] #33926
  • When determining whether to show the reassign content option during user delete, don’t rely upon WP_Query as it doesn’t return all forms of content wp_delete_user() operates on. [36106] [36068] #34993


  • Remove extra quotes from 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. title in WP_Widget_RSS, accidentally added in [33814]. Merges [35978] to the 4.4 branch. [36067] #34978
  • Add missing closing tag for spinner after [35317]. [36001] #35150


Thanks to @jadpm, @aaroncampbell, @afercia, @ambrosey, @ardathksheyna, @azaozz, @barryceelen, @boluda, @boonebgorges, @danielpataki, @dd32, @diddledan, @DrewAPicture, @ericlewis, @gblsm, @hnle, @igmoweb, @jeff, @jeremyfelt, @joemcgill, @johnbillion, @jorbin, @JPry, @jrchamp, @juanfra, @kiranpotphode, @KrissieV, @kucrut, @marcochiesi, @mark8barnes, @meitar, @morganestes, @mwidmann, @nofearinc, @obenland, @pento, @peterwilsoncc, @rabmalin, @rachelbaker, @ramiy, @salcode, @SergeyBiryukov, @ShinichiN, @skithund, @slushman, @swisssipdy, @swissspidy, @tharsheblows, @TimothyBlynJacobs, @tyxla, @wonderboymusic, @wp-architect, and @yetAnotherDaniel for their contributions!

#4-5, #week-in-core