WordPress Core Weekly

Hi Everyone!

It’s time for another run-down of what’s going on in WordPress core. This edition covers February 3rd, 2015 [31332] through February 11th, 2015 [31410].

Quick info: If you’re interested in helping out with these updates, comment below, or ping @mike on Slack! There’s a dedicated #core-weekly-update channel and you can even use a super cool script to parse the logs.

Without further ado:


  • Improve the Customize experience on mobile. [31384] #28784
  • Introduce an API to create WP_Customize_Settings for dynamically-created settings. [31370] #30936


  • Replace $.post() calls with wp.ajax.post(), and clean up a bunch of the now unnecessary code. [31409] #29820
  • Use a positive wording for translations update notice. [31368] #28199
  • If the current user is not allowed to install/update plugins, we should return a JSON error, so it can be used by the JS handlers. [31335] #29820
  • Add capability checks to the ajax callbacks, to ensure the current user is allowed to install/update plugins. [31334] #29820
  • Add ajax-y updates to the plugin list page, and ajax-y updates and installs to the plugin card page. [31333] #29820
  • Updates: Display plugin update rows even for plugins which are not hosted by WordPress.org or the HTTP request times out on. [31382] #29583, #30767


  • oEmbed discovery fails on XHTML head links, adjust the regex to not match /. [31407] #31212


  • Use Math.round() instead of Math.floor() when determining page of attachments to query in wp.media.model.Query.sync. [31406] #31116
  • After [31386], this needs to happen in audio-video.manifest.js. [31387] #31058
  • Avoid an IE8 JS error when removing a MediaElement player. [31386] #31058
  • Make sure that media/views.js doesn’t load Models that already exist in media/models.js. [31379] #28510
  • Split the media JS files into modules using browserify [31373] [31380] [31393] [31405] #28510


  • Replace generic “Dear user” greeting in email notifications with a more personalized one. [31403] #31217
  • Update body class when switching between admin color schemes. [31400] #30488
  • Avoid inadvertent stomping of the original $args parameter passed to plugins_api_result and themes_api_result filters in plugins_api() andthemes_api(), respectively. [31363] #29079


  • Switch to a string placeholder, as number_format_i18n() returns a string. [31402] #26553
  • Use _n() in comments_popup_link() when setting the default string to display if there are more than one comment. [31401] #26553
  • Use screen reader text instead of a title attribute in comments_popup_link. [31388] #26553


  • Don’t parse empty tax_input keys in edit_post(). [31392] #30615
  • Remove unnecessary array_shift() usage in get_terms() for better performance. [31365] #31182
  • Parse non-hierarchical tag input into term IDs before sending to wp_insert_post(). [31359] #30615
  • Update the DocBlock for wp_dropdown_categories() to reflect that the entire $args parameter array is optional instead of individual arguments. [31357] #30306
  • Use field-specific sanitization in WP_Tax_Query::transform_query(). [31346] #27810


  • WPDB: If a site is using the utf8 charset, and their version of MySQL supports utf8mb4, auto-upgrade them to utf8mb4. [31349] [31351] [31354] [31358] [31391] #21212
  • WPDB: The mysqli_query() call in wpdb::set_charset() had the parameters the wrong way around. [31374]


  • Add orderby=meta_value_num support to WP_User_Query. [31369] #27887
  • Remove leading space from the definition of a global cache group. This only applied in a rare situation during the switch_to_blog() process where no global groups were currently defined. [31348] #31243
  • Add useremail and userslugs as global cache groups. [31347] #31243


  • Editor: prevent errors in editor-expand when the Text editor is not used. [31361] #31163
  • Fix displaying long tag names in the Tags postbox. [31332] #18946
  • MCE views: Always refresh the view after updating a gallery. This allows things like caption changes to be synced, as they are tied to the attachment and not the shortcode. [31343] #31239
  • TinyMCE: ensure the image toolbar stays visible when the image is much wider than the editor. [31362] #20696

Build/Test Tools

  • Update Travis-ci Slack notification token [31352] #30755
  • Temporarily (I hope) remove PHP 5.2 from tests being run on Travis-ci. Travis-ci has disabled PHP 5.2. This has happened before when 5.2 didn’t compile and then was restored when that was fixed. #31244

Posts & Pages

  • Introduce 'value_field' parameter to wp_dropdown_pages(). This parameter allows developers to choose the post field that will be used to fill in the ‘option’ attribute of the generated dropdown markup. [31338] #30306, #12494
  • Always pass back the custom classes get_post_class() was called with, even if the post was not found. [31408] #22271

Thanks to @adamsilverstein, @afercia, @ArminBraun, @azaozz, @boonebgorges, @bswatson, @Bueltge, @celloexpressions, @ChriCo, @Corphi, @cweiske, @dd32, @dlh, @DrewAPictur, @DrewAPicture, @ericlewis, @F J Kaiser, @Funkatronic, @genkisan, @helen, @hissy, @ipm-frommen, @Ipstenu, @iseulde, @jfarthing84, @joedolso, @johnbillion, @jorbin, @lgladdy, @lgladdy for the initial patch, @nacin, @netweb, @obenland, @ocean90, @pento, @SergeyBiryukov, @siobhan, @tyxla, @valendesigns, @Veritaserum, @VolodymyrC, @vortfu, @westonruter, and @wonderboymusic for their contributions!

#4-2, #week-in-core