WordPress Developers Take Note: TinyMCE 4.0 Merged Into Core

Andrew Ozz who is responsible for maintaining TinyMCE in WordPress has announced that TinyMCE 4.0 has been merged into core. The upgrade contains a number of changes including:

New UI and UI API.

New theme.

Revamped events system/API.

Better code quality, readability and build process.

Lots of (inline) documentation.

Overall improvements everywhere

TinyMCE 4.0 In Development version of WP

All of the default TinyMCE plugins as well as the custom plugins used by WordPress have been upgraded to be compatible with 4.0. Since there are a lot of API changes, plugin developers are strongly encouraged to update their plugins to make sure they are compatible with 4.0 and then test them against WordPress Trunk.

Andrew Ozz listed three groups of general TinyMCE plugins that are added by WordPress Plugins.

A custom plugin created specifically for the WordPress plugin. If you’ve developed this kind of plugin, please see the 3.x to 4.0 migration guide and the 4.0 API documentation.

WordPress plugins that add third-party or default TinyMCE plugins would (of course) need to be updated to include the 4.0 version of the plugin. The PHP global $tinymce_version can be used to determine which plugin to load.

Mini-plugins that only add a button to the toolbar. This works pretty much the same. It is advisable to update to use the ‘dashicons’ icon font instead of image icon.

After upgrading to the bleeding edge version of WordPress 3.9 to compare the visual editor with WordPress 3.8, I immediately noticed that the Pull Quotes icon image that’s added to the visual editor disappeared. While the place holder is still there and the button functions normally, the icon image is gone. There are two other plugins that have added custom icon images to the visual editor and those work just fine. However, since they are not using SVG images or Dashicons, the experience is not consistent with the rest of the interface.

If you’re the author of a plugin that modifies or changes the behavior of TinyMCE, now is the time to test it against the trunk of WordPress so users don’t encounter unexpected changes when they upgrade to WordPress 3.9.