Week in Core, Mar 1 – Mar 8 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 [36801-36888]. 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 makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility)./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

Build/Test Tools

  • Update grunt-contrib-copy ~0.8.2 → ~1.0.0 [36864] #35104
  • Update Autoprefixer to 6.3.3 [36860] #35104
  • Update grunt-contrib-cssmin ~0.14.0 → ~1.0.0 [36865] #35104
  • Update grunt-contrib-concat ~0.5.1 → ~1.0.0 [36863] #35104
  • Update grunt-contrib-compress ~0.14.0 → ~1.1.0 [36862] #35104
  • Update grunt-contrib-clean from 0.6.0 → 1.0.0 [36861] #35104
  • Document PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 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. classes. [36854] #35494


  • Improve the collapsed view when switching to the responsive view. [36877] #35220
  • Fix image cropping when doing live preview of theme switches. Ensure that 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. gets bootstrapped with the pre-activated theme supplied in the custom-header-crop adminadmin (and super admin) ajax requests. [36866] #32783
  • Fix visibility of preview in iOSiOS The operating system used on iPhones and iPads.. Removes CSSCSS Cascading Style Sheets. rule added in [21014] that is now obsolete. [36804] #20805, #35875
  • Eliminate unnecessary WP_Customize_Site_Logo_Control in favor of re-using WP_Customize_Image_Control. Fixes #35941. [36851] #36096, #33755, #35941
  • Don’t show custom image sizes in the media modal. Custom image sizes for logos should only be used for their intended purpose. [36839] #33755
  • Rename custom logo classes after [36837]. [36838] #35945
  • Site logos are custom logos. Brings the nomenclature closer to custom headers and backgrounds. See #35945. [36837] #35945
  • Remove gap above section contained in panel when initially focusing on control. [36805] #36050
  • Define params on WP_Customize_Partial::render_callback() for the sake of subclasses overriding this method. [36801] #27355



  • Improve documentation for the update_welcome_user_email() 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., introduced in [26538]. [36827] #25598, #35986
  • Minorly improve the hook doc summary for the pre_network_site_new_created_user action, introduced in [35786]. [36826] #33631, #35986
  • Improve documentation for upgrade_450(), introduced in [36180]. [36825] #27772, #35323, #35986
  • Minorly improve the hook doc summary for the pre_uninstall_plugin action, introduced in [36124]. [36824] #34569, #35986
  • Add a more descriptive changelog entry to the hook doc for the privacy_on_link_title filter. [36823] #35049, #35986
  • Improve documentation for WP_Upgrader::release_lock(), introduced in [36349]. [36822] #34878, #35986
  • Use third-person singular verbs in DocBlockdocblock (phpdoc, xref, inline docs) summaries for the WP_Site_Logo class, introduced in [36698]. Also minorly improves various inline docsinline docs (phpdoc, docblock, xref). [36820] #33755, #35986
  • Add wp_add_dashboard_widget() parameter descriptions. [36868] #36092
  • Correct $plugins global type in WP_Plugins_List_Table::prepare_items(). [36830] #36080
  • Improve syntax and correct documentation throughout a variety of methods in WP_Customize_Widgets. [36842] #32246, #35986
  • Improve documentation for WP_Customize_Widgets::customize_dynamic_partial_args(), introduced in [36586]. [36841] #27355, #35986
  • Improve DocBlock syntax for WP_Customize_Nav_Menus::customize_dynamic_partial_args(), introduced in [36586]. [36836] #27355, #35986
  • Improve documentation for WP_Customize_Nav_Menus::filter_nonces(), introduced in [36414]. [36835] #27355, #35617, #35986
  • Add a missing @since version to the DocBlock for wp_add_dashboard_widget(). [36878] #32246
  • Improve DocBlock syntax and add a missing @return notation for WP_Image_Editor_Imagick::strip_meta(), introduced in [36700]. [36847] #33642, #30402, #28634, #35986
  • Improve the hook doc summary for the image_strip_meta filter, introduced in [36700]. [36846] #33642, #30402, #28634, #35986
  • Improve documentation for WP_Upgrader::create_lock(), introduced in [36349]. [36821] #34878, #35986
  • Match the parameter name in the hook docs for the press_this_useful_html_elements filter, introduced in [36672]. [36819] #34455, #35986
  • Standardize the changelog entry for the new $author_url argument, introduced in [36224]. [36834] #35377, #35986
  • Move the hook doc for the all_plugins filter in WP_Plugins_List_Table::prepare_items() to directly precede the apply_filters() line. [36828] #35986


  • TinyMCE, inline link: Add uiAutocompleteL10n with translatable strings for use in UIUI User interface Autocomplete live region. [36806] #33301
  • Fix the icon for the native dialogs close button. Highlight the button on :focus. [36857] #36035
  • TinyMCE, inline link: add styling for the dialog and UI Autocomplete to Press This. [36849] #33301
  • TinyMCE: then toggling the paste in plain text mode disable the warning message after the second time. [36807] #28612
  • TinyMCE: update to 4.3.7. Has few 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./regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. Fixes #36035. [36803] #36035


  • During discovery, only request the first 150kb of linked content to avoid timouts requesting larger documents. [36880] #35979
  • Adjust 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. title attribute for improved 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). Changes the title attribute from Embedded WordPress Post to "Post name" — site title. [36873] #35804
  • Embeds: Add support for embeds in the theme template hierarchy. [36875] #35421


External Libraries

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

  • Tests: Merge the two different wp_normalize_path() tests. [36882] #35996
  • Support Windows shares/DFS roots in wp_normalize_path(). [36881] #35996


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

  • Avoid an undefined index notice in wp_http_validate_url(). [36870] #34164

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.

  • Remove the title attributes from the old Media UI. [36879] #34944
  • Fix an 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. placeholder added in [36844]. [36850] #36048
  • Don’t use the 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. for the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. language attribute. [36802] #33511
  • Move the aria-label text in get_theme_update_available() to a separate string for easier translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization.. Add translator comments. [36845] #36048
  • Move the aria-label text in wp_plugin_update_row() and wp_theme_update_row() to a separate string for easier translation. Add translator comments. [36844] #36048


  • Avoid a notice when outputting a description for an existing archive menu item for a post type that doesn’t. [36888] #35324
  • Ensure Description is respected in post type archive menu items. Introduced in r35382. [36859] #35324, #16075
  • Ensure theme location setting data is saved with a large menu. [36852] #14134

Networks and Sites

  • Handle redirect to a user’s subdomain properly during login [36867] #30598

Posts, Post Types

  • Posts, Post Types: Ensure that non-ASCII characters in attachment slugs aren’t shown in urlencoded form in the sample permalink UI. [36853] #35980

Press This

  • Change the newly added press_this_save_post_content filter to press_this_save_post and pass the $post_data array to it. Remove the newly added press_this_useful_html_elements. Remove the press_this_suggested_content filter. Add some more inline docs and rename couple of vars to make the code more readable. [36848] #34455

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

  • Unit test for OPTIONS request should call rest_send_allow_header In [36829] we moved this logic to rest_send_allow_header() [36831] #36829
  • OPTIONS requests to REST API should return Allow 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.. [36829] #35975

Script Loader,Media

  • Enqueue the minified version of farbtastic if SCRIPT_DEBUG is false. The files are available since [36341]. [36884] #36083, #35229
  • CSS: Rename the handle for deprecated-media.css after [36341]. The media handle is now used for media.css thus the stylesheet
    for the old media UI needs a different handle name. [36869] #35229
  • Improve group processing of script dependencies. 36871] #35873, #35956


  • Setup config: Generate the default secret keys & salts from the local CSPRNG if available, falling back to the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ API and a backup psuedo random source. [36872] #35290

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.

  • Improve backward compatibility on the wp-admin/term.php page. Specifically, run do_action( 'edit-tags.php' ); on this new term edit page introduced in [36308]. Changes the GET param back to tag_ID and properly sets the screen base in WP_Screen. [36874] #34988
  • Remove unnecessary ‘All categories’ string on Edit Posts and Edit Links screens and use taxonomy’s all_items label instead. [36808] #36049



  • Remove an unnecessary static var from wp_is_mobile() to allow its direct and indirect use within unit tests. The static $is_mobile var was only used to avoid a handful of calls to strpos(), which are exceptionally fast and result in no measurable increase in processing time on each call to wp_is_mobile(). [36813] #35976, #20014
  • Add tests for device upload capabilities based on user agent. [36810] #35976


Thanks to @adamsilverstein, @afercia, @andg, @azaozz, @boonebgorges, @borgesbrun, @borgesbruno, @bradyvercher, @celloexpressions, @ChriCo, @dd32, @diddledan, @DrewAPicture, @ericlewis, @extendwings, @faishal, @gitlost, @jeremyfelt, @joehoyle, @joemcgill, @johnbillion, @jorbin, @keraweb, @markoheijnen, @mattwiebe, @mayukojpn, @meitar 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., @mikeschroder, @mt8.biz, @netweb, @obenland, @ocean90, @pento, @perezlabs, @ramiy, @rilwis for initial patch, @rittesh.patel, @SergeyBiryukov, @stephenharris, @swissspidy, @Toro_Unit, and @westonruter for their contributions!

#4-5, #week-in-core