Last Week in WordPress Core

Hello there! This is Last Week in WordPress Core for the week of February 10th-February 16th. Let’s start out by highlighting JavaScript library updates, then changes to how we build CSS for core, finally touching on TinyMCE, internals, and multisite.

Backbone.js and Underscore.js

  • Backbone was updated from 1.0 to 1.1, and Underscore to 1.6. If you have a plugin that is built on the backbone-based libraries in core, you’ll want to test for compatibility and update accordingly. We’ll be working with the plugins group to notify as many authors as possible. r27170 #26799
    • Collection set/add/remove/reset methods now return models, not this, so they can no longer be chained.
  • Updated media-views and wp.Backbone.View for Backbone 1.1. r27171 #26799
    • Options passed to Backbone.View‘s constructor are no longer attached automatically. wp.Backbone.View now handles this.

Dev/Build Tools:

  • Use grunt-autoprefixer for CSS vendor prefixes. As a first step, add prefixes we were missing to core CSS, and remove prefixes that we no longer need, including all from colors CSS. r27174 #27078 The plan is the following:
    • Core CSS files will keep prefixes. grunt autoprefixer:core will update files directly in src/ as a pre-commit step, rather than doing it on build.
    • Color CSS files will receive prefixes when they are built.
  • Add grunt precommit for running front-end dev and test tasks before commit. This includes autoprefixer, imagemin, jshint, and qunit. r27176 #27121 #25169 #27078
  • Add grunt imagemin:core task for optimizing images pre-commit. Adds grunt-contrib-imagemin, so an npm install will be required. r27172 #25169
  • Optimize 69 images (of 127) using the new Grunt task. r27173 #25169
  • Rename the old media.css file, used for the pre-3.5 media library, to deprecated-media.css. r27181 #26669


  • Add image based placeholders for audio and video shortcodes. r27169 #27016
  • Add support for audio and video shortcodes without closing. r27177 #27016
  • Incremental changes in TinyMCE’s new charmap popup, including allowing multiple-character insert. r27179 r27165 #27107

Internals & Multisite:

  • Detect and handle symlinking of plugins in plugin_basename(). (Yay!) r27158 #16953
  • Add get_network_by_path() and wp_get_network() to begin cleanup of multisite load. Likely to continue to change throughout 3.9 r27178 #27003
  • Rather than removing the 3rd argument in WP_Object_Cache::delete(), mark it as $deprecated. See r27064. r27162 #22478
  • Partially revert r27101, r27102, r27141, and r27142, removing new cache synchronization functions in favor of a simpler solution that alters existing internals. r27163 #14485 #22526

Thanks to azaozz, bpetty, DrewAPicture, gcorne, georgestephanis, jdgrimes, jeremyfelt, jorbin, kovshenin, mikemanger, MikeSchinkel, nacin, ocean90, pavelevap, rmccue, SergeyBiryukov, and wonderboymusic for their help this week!

For the complete list of commits to trunk, check out the log on Trac.

It’s important that we reduce the amount of tickets slated for 3.9, as we work towards beta on March 5th. Want to help out this week? Write or test a patch for 3.9.

#3-9, #week-in-core