WordPress 3.9 is the hard result of hard work from 267 contributors. The WordPress 3.9 release was led by Andrew Nacin and Co-led by Mike Schroder.
I will have Andrew and Mike, plus three additional contributors on a live hangout tomorrow at 2 p.m. Eastern time, and we'd love for you to join us.
Get to know Smith first with this introductory video, produced by Mike Pick.
User facing features
There are many new and exciting features in WordPress 3.9 for users. Let's go through those, then the stuff that's behind the scenes.
WordPress 3.9's most notable features for every day users are editing enhancements.
TinyMCE has been updated so that the visual editing experience is better than ever. Paste from Microsoft Word? Gone. Simply paste. Ever used WordPress from a mobile device? The editor now adapts much better to that environment.
TinyMCE is also faster, with fewer bugs. This is a good day for writing in WordPress.
Image uploading, handling, and editing
Love drag and drop? Plupload, the engine WordPress uses for managing drag and drop interfaces, has gotten a nice upgrade. This allows WordPress to extend it so that drag and drop uploads can be done right on top of TinyMCE, and don't even require clicking the “Add Media” button first.
Developers can learn about some of the technical parts of the Plupload upgrade as well.
Previously, if you inserted an image, then wanted to edit it, the process was quite annoying. You were presented with a thickbox, and you couldn't change the image size. Now, there's an entirely new interface.
This dialog box is a drastic improvement. When you want to edit the original image, you simply click the button, and the content of this dialog switches to the editing interface, without redirecting to the clunky media page of old.
When the image is in the editor, you can simply drag the handlebars if you want to resize it a bit inline.
Playlists for audio and video
Playlists are now available with a new shortcode in WordPress 3.9. Simply add your audio or video through the “Add Media” modal, and a playlist option will show up for you.
Through this modal, you can manage and edit audio and video playlists through screens similar to the image management and editing screens. The options are truly extensive, including poster image options per item, fallback media types for video, and much more.
Users can also use the playlist shortcode directly in the editor, even to external sources for the URLs. And with the type parameter, can specify a playlist to be for video.
On the front-end, most themes should support these new media playlists without any changes needed. Here's a screenshot of mine, working perfectly with a two year old theme.
Widgets are completely revamped in WordPress 3.9. Now, widgets can be managed and previewed live, just like you already could with the theme customizer.
The widget customizer is this release's only (but significant) features-as-plugin feature. Spearheaded by Weston Ruter, the widget customizer enables site configurations with a visual interface that simply wasn't available before.
Header images in customizer
In addition to the widgets being added to the customizer, header images can now be fully managed there as well, including previews and image cropping.
New theme browser
Want to add a new theme? Browsing themes on WordPress.org is now easier than ever before. In fact, it's better than doing it on WordPress.org itself. You can browse straight from your dashboard with the improved interface:
And then preview the theme in a customizer view:
More user facing features
New oEmbed support
More autocomplete support
When you're adding an admin email in multisite, it now uses autocomplete, thanks largely to the work of Helen Hou-Sandi. User screens also have improved autocomplete support.
Accessibility continues to be a priority in WordPress core. The default WordPress themes now have better keyboard accessibility, as does the theme installer. Focus styles were also improved for various admin interfaces.
Features for developers
There are loads of excellent new features and improvements for developers as well. I'm going to highlight some of my favorites. You can also check out all the new functions on Query Posts.
MySQLi support for queries
If WordPress installs support PHP 5.5 or higher, they will now use the mysqli PHP library. The “i” in MySQLi stands for “improved”. Installs that utilize MySQLi will have better performance and more flexibility.
It does mean that plugin developers need to revisit the way they do things, and make sure that they are taking the new layer into consideration. Gary Pendergast explains on the Make Core blog.
Crop images to anywhere
Image sizes now have an additional argument when registered, so that theme authors can define the default position to crop an image. No longer will your tall portfolio pictures have to crop to someone's midsection.
Additional HTML5 support
Galleries and captions will now support HTML5. Themes can register support, and galleries will now use
figcaption instead of definition lists. You can learn more about how to support these features on Themeshaper.
Addition of has-post-thumbnail post class
If you've ever done any theming, you know that there are plenty of times where you want to add a post class if the current post has a post thumbnail. Now, it's a default post class.
Bundling various libraries in WordPress is quite a task. They are relatively thankless to maintain, and sometimes WordPress has to deal with less-than-ideal practices from the folks that maintain the original libraries. Here's a list of those updated in WordPress 3.9.
- TinyMCE 4.0
- Masonry 3.0
- Backbone 1.1.2
- Underscore 1.6
- PHPMailer 5.2.7
- Plupload 2.1.1
- jQuery 1.11.0
- Query UI 1.10.4
- MediaElement 2.14
Specifically, I'd like to show you just how much effort WordPress core developers put in by pointing you to the ticket for Masonry's update and the corresponding post on the Make blog. This is one example of how WordPress goes the extra mile to make WordPress have some of the best backward compatibility policies of any software in existence.
A couple of old functions were deprecated, a new method for getting site information was introduced, and new filters are available for Multisite.
As Jeremy Felt notes in his summary of the changes to Multisite in 3.9, it's exciting to see the activity and changes surrounding this popular WordPress feature.
Okay, this isn't specifically a core feature. But the Docs group has been busy this release, and they still need more help. Some of the new items in 3.9 are documented, but if you've followed along with this release and understand the new features, you can help update the Codex (there's a list!) so other people will know how to use all these amazing features.
WordPress 3.9 continues the trend
WordPress 3.9 is the result of thousands of hours of work by hundreds of dedicated individuals. WordPress continues to evolve and get better. It is truly the world's most amazing publishing platform.
If you want to learn even more, you can see more features for WordPress 3.9 on the Codex page.
And you can follow current and future core development updates on the Make Core blog.
One thing I especially noticed about this release was the significant communication from the core team about what's going on in the development cycle. I'd like to especially thank Mike Schroder for his “This week in Core” posts, that he diligently posted, week after week. Those were fantastic for helping me, and I'm sure many others, follow the cycle for WordPress 3.9. I hope this continues in future cycles.
And to everyone that contributed to WordPress 3.9, whether in code, docs, or some other way: thank you.
Oh, and are you already excited about WordPress 4.0? Good, but remember, it's just another release too, even though it's a round number.
Well, what are you waiting for? Go update your sites!