Mel Choyce’s Recap on WordPress 4.9

Whereas my recap post about WordPress 4.9 focused mostly on the new features and enhancements, my co-release lead Mel Choyce just published a great post that gets into more of the process aspects of the release, including the key contributors:

WordPress 4.9 Released

I think that 4.9 went really well by having essentially three co-release leads: Mel Choyce leading design, myself leading the development, and Jeff Paul leading project management as deputy release lead.

WordPress 4.9

For the past few months I’ve been co-leading the WordPress 4.9 release with Mel Choyce (and Jeff Paul too). I’m really excited about all the new features and enhancements we’ve built which will now be rolling out across 29% of the Internet(!).

WordPress 4.9 “Tipton”

In particular I’m excited about the powerful new capabilities being added to the Customizer. Now you can draft changes to come back to later while also scheduling them to be published at a future date.  The Customizer also now features autosave revisions, changeset post locking, customization drafts, and more. These changes were a long time in coming. For more than two years we’ve been working on these features in the context of the Customize Snapshots feature plugin where we’ve developed the infrastructure and UI for changesets in the course of service delivery for our clients at XWP. In WordPress 4.7 the changeset infrastructure from the plugin was introduced to core, and now in 4.9 the UI has also been introduced, after many design iterations.

I’m also particularly excited about the improvements to the Customizer JS API in 4.9. It is now much more pleasant to develop applications in the Customizer using JavaScript, where the JS API is much more of a first-class citizen on par with its more popular PHP API. Since the Customizer is WordPress’s first single-page application, JavaScript has always been key. However, the PHP API has been the primary way that developers would interact with the Customizer, where all of the PHP API calls get translated into JS API calls when the Customizer loads. Now with 4.9 developers should feel much more inclined to target the JS API directly without having to use with the PHP API abstraction. Ultimately, if you want to make scalable applications in the Customizer, you must use the JS API. I’m going to be talking about building with JavaScript in the Customizer at WordCamp US this year (talk now available).

There are several other things I’m really happy about in 4.9, including the integration of CodeMirror into the code editing interfaces (Additional CSS, Custom HTML widget, theme/plugin editors) and the many improvements to widgets, including adding media/embeds to the Text widget and a new gallery widget.

I presented the new highlights in 4.9 (and 4.8) during the State of the Word:

Presenting WordPress 4.8 & 4.9 at State of the Word 2017

I’ve written about all of these improvements in detail over on Make/Core. Since I don’t post much here on my personal blog, here’s a roundup of the 4.9 posts I’ve published there:

New Features and Enhancements with Customizer Changesets in 4.9

Improvements to the Customize JS API in 4.9

Widget Improvements in WordPress 4.9

Code Editing Improvements in WordPress 4.9

Introducing the Gallery widget

Thanks to XWP for sponsoring my time to be part of this release.

WordPress 4.8

We did a ton of work on widgets in the WordPress 4.8 release. Prior to this release there hadn’t been any new widgets introduced for a very long time. Now there are media widgets for images, video, and audio. Additionally, the Text widget finally gets the TinyMCE visual editor just like the post editor has had forever. In 4.8.1 we introduced a dedicated Custom HTML widget for storing arbitrary markup, which the Text widget was formerly used for. Many of these widget changes incorporated ideas from XWP’s JS Widgets plugin, as prior to 4.8 widgets in core lacked any JS-driven functionality at all.

The widget improvements aim to mirror the development of blocks in Gutenberg. If there is a block for something, there should also be a widget for it.The more that block-like widgets are available today, the more users will see a consistency between post content and widget sidebars. After Gutenberg is merged into core, we’ll be working on migrating widgets over to use blocks instead. At that point we’ll be able to abandon many of the hoops we have to go through to make widgets JS-driven when they are fundamentally PHP beasts.

Here are a few of my posts from WordPress 4.8 & 4.8.1 releases on Make/Core:

Media Widgets for Images, Video, and Audio

Addition of TinyMCE to the Text Widget

Fixes to Text widget and introduction of Custom HTML widget in 4.8.1