What’s New in WordPress 4.9

By , Updated: October 19, 2017

WordPress 4.9

WordPress 4.9 Beta 3 has just been released and is available for testing. The second major release of this year marks a significant step toward a more user-centric way to customize and manage websites, with great improvements to the Customizer, new exciting functionalities to widgets, a powerful text editor for editing code, and much more. So, it’s time to have a look at the most promising changes coming up with the new release.

You can download the full beta package or upgrade an existing install using the WordPress Beta Tester plugin. But remember that this is a beta version, therefore some of the changes reported in this post may not be part of the final release. And you shouldn’t use it in production.

That being said, let’s dive into the most promising WordPress 4.9 changes.

Drafting and Scheduling Changes in the Customizer

Inspired by drafting and revisions in the Customize Snapshots plugin, WordPress 4.9 introduces a new way to save changes in the Customizer. Any time you start a customization session, every change of settings will be saved in a customize_changeset custom post type. Thanks to changesets, user customizations can be saved as drafts or scheduled to be published in the future. This means that site admins can discard changes and restore the Customizer to the last published state before the final publication.

Customizer
Changes in the Customizer can be saved as drafts or scheduled to be published later

A useful addition is the Share Preview Link, which will allow users to share a preview of the latest changes with viewers who are not allowed to access the Customizer. The Share Preview Link will come in handy to share a preview of the front-end with your clients without giving them access to the admin panel.

Other UX Improvements in the Customizer

Other improvements concern the theme browsing experience. Since WordPress 4.9 the user can browse through installed themes and WordPress.org themes, and preview, download and activate them directly from the Customizer.

Customizer
Browsing through themes in the Customizer

Another change affects the flow for creating menus in the Customizer, and should solve some usability issues. Since WordPress 4.9 the user is guided through the menu creation process so that it should be more intuitive to select menu locations and items.

Customizer Menus sections
A comparison between Customizer Menus sections in WordPress 4.8 and WordPress 4.9

Galleries, oEmbeds and HTML in Widgets

WordPress 4.9 comes with a brand new Gallery widget, which follows the Media and Image widgets introduced in WordPress 4.8. Now galleries can be added to widgets exactly the same way as we do in the post editor.

Gallery widget
The new Gallery widget

Other changes affect Text, Video and Custom HTML widgets. WordPress now parses shortcodes only within posts, and to make them work in a widget we should add these two lines of code to a plugin:

add_filter( 'widget_text', 'shortcode_unautop' );
add_filter( 'widget_text', 'do_shortcode' );

Starting from WordPress 4.9, shortcodes will be parsed in Text widgets by default.

Text widget
In WordPress 4.9 shortcodes are parsed also in Text widgets

Currently, only videos hosted by YouTube and Vimeo could be added to a Video Widget, as these are the only hosted video providers supported by the MediaElement.js library without needing to fall back on oEmbeds. WordPress 4.9 adds oEmbed support in Video widgets, and this change will make it possible to include videos hosted by providers other than YouTube and Vimeo.

Video widget
The improved Video widget allows to embed videos from providers other than YouTube and Vimeo

Furthermore, WordPress 4.9 adds oEmbed support outside post content. This means that available oEmbeds will be allowed in Text widgets as well.

Text widget
In WordPress 4.9 oEmbeds are allowed in Text widgets

Other changes are the support for adding media in Text widgets and the introduction of the CodeMirror text editor in Custom HTML widgets.

CodeMirror
CodeMirror is the new text editor for Custom HTML widgets

Menu, Widget Locations, and Other Changes

When we change the active theme, menus and widgets of the previous theme go lost. This happens even when we switch from a parent theme to its child, and is quite annoying because it forces us to build all the menus and add all the widgets, again and again, every time we change a theme.

WordPress 4.9 fixes this issue so that menu locations and widget areas having similar IDs or names in both themes will be automatically mapped. Moreover, if themes have more than one menu, the menu in the first menu location of the first theme will be automatically mapped to the menu in the first menu location of the second theme. This means that WordPress will preserve menus and widgets in theme switch.

Changes for Developers

An important change for developers is the inclusion of CodeMirror to theme/plugin editor, Custom CSS editor in Customizer, and Custom HTML widgets.

CodeMirror
CodeMirror in theme/plugin editor

CodeMirror brings the WordPress coding experience to a higher level. It comes with the autocomplete functionality and live syntax error notifications. Furthermore, users are prevented from saving the code in case of error, and this adds a layer of security to code editing (see Include default code editor ticket for further information).

CodeMirror
An error notification in CodeMirror

WordPress 4.9 also adds the new WP_Customize_Code_Editor_Control class, which will allow developers to add custom instances of the CodeMirror text editor in plugins. Here is an example of how to add a custom code editor in the Customizer:

add_action( 'customize_register', 'sample_customize_register' );

function sample_customize_register( WP_Customize_Manager $wp_customize ) {
	$wp_customize->add_setting( 'custom_html' );
	$control = new WP_Customize_Code_Editor_Control( $wp_customize, 'custom_html', array(
		'label' => 'Custom HTML',
		'code_type' => 'text/html',
		'settings' => 'custom_html',
		'section' => 'title_tagline', // Site Identity section
	) );
	$wp_customize->add_control( $control );
}

Other changes in the Customizer are global notifications, panel and section notifications, a notification overlay over the entire screen, and a new date/time control.

Customizer
Panel and section notifications in Customizer

Here is a short list of other interesting changes for developers that will likely be in the final release:

For the full list of WordPress 4.9 changes, see WordPress 4.9 Beta 3

Conclusions

WordPress 4.9 is round the corner, and it will bring us a good number of features that should especially affect the user experience. In my opinion, the most interesting changes are the Customizer improvements, CodeMirror inclusion into the core, and oEmbed support in Video and Text widgets. What features do you prefer in WordPress 4.9?