WordPress 4.9 “Tipton” has just been released and is available for download. 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.

UpdateWhat’s New in WordPress 5.3

You can download WordPress 4.9 or upgrade an existing install using from within your WordPress dashboard under the updates section. Remember, as with any new version of WordPress, it is always a good idea to test it in a staging environment first — or at least make a backup in case something breaks.

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.

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.

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 pages, 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 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.

Suggested reading: 10 Best WordPress Menu Plugins to Extend WordPress’ Built-In Menu Functionality.

There are also other small improvements to the UI, such as icons now showing up next to each plugin when you go to run updates (as seen below).

WordPress 4.9 update icons
WordPress 4.9 update icons

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 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).

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.

Panel and section notifications in Customizer

Here is a short list of other interesting changes for developers:

For the full list of WordPress 4.9 changes, see WordPress Release. Here is a great video rundown of all the changes from Dave over at WP Smackdown.

How to Update to WordPress 4.9

Since every customer’s site is different, we always recommend utilizing the provided staging environment (you can also add extra Premium Staging Environments if one’s not enough). You can clone your live site in a matter of seconds and then test WordPress 4.9 with your existing theme and plugins to check for compatibility. You can of course also take a manual backup before updating your live site, just to be safe.

To update WordPress to 4.9 simply click on the updates icon in your WordPress admin dashboard. And click on the “Update Now” button. While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, your site will return to normal.

Update to WordPress 4.9
Update to WordPress 4.9

As long as everything goes well with the update you should then see the “What’s New” screen. And that’s it! Quick and easy.

WordPress 4.9 update
WordPress 4.9 update

Troubleshoot Issues With WordPress Update

Whenever people update a major version of WordPress, there are always some that experience issues, and that is due to the thousands of different plugins and themes currently co-existing in the market. Here are a few ways to troubleshoot common issues.

  • Getting the white screen of death? This is commonly resolved by simply restarting PHP/HHVM and deleting the full page cache on your WordPress site.
  • Try deactivating all your plugins to see if that fixes your issue. Then reactivate them one by one until you find which plugin might need an update from the developer.
  • Try switching over to a default WordPress theme, such as Twenty Twenty. If this fixes your problem, you might want to reach out to your theme developer.
  • Troubleshoot and diagnose JavaScript issues in your browser. This can be especially helpful if a crucial component like the Visual Editor (TinyMCE) breaks.


WordPress 4.9 is now here! It 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?

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.