apply_filters( 'mce_external_plugins', array $external_plugins, string $editor_id )

Filters the list of TinyMCE external plugins.


The filter takes an associative array of external plugins for TinyMCE in the form ‘plugin_name’ => ‘url’.

The url should be absolute, and should include the js filename to be loaded. For example: ‘myplugin’ => ‘http://mysite.com/wp-content/plugins/myfolder/mce_plugin.js‘.

If the external plugin adds a button, it should be added with one of the ‘mce_buttons’ filters.



(array) An array of external TinyMCE plugins.


(string) Unique editor identifier, e.g. 'content'. Accepts 'classic-block' when called from block editor's Classic block.

More Information

This filter may be useful for loading any of the TinyMCE core plugins, many of which are not included by default in WordPress, as well as any custom TinyMCE plugins you may want to create.

Plugin Version Compatibility:

TinyMCE plugins must be compatible with the version of TinyMCE included in WordPress.

It may also be helpful to check when the particular plugin was introduced. For example, the visualblocks plugin was introduced in TinyMCE version 3.5b1.

WordPress 3.9 had a major update with TinyMCE 4.0.

If you find that your plugin script is not getting added, make sure you are adding your plugin ‘id’ => scripturl with the ‘mce_external_plugins’ filter, but not the ‘tiny_mce_plugins’ filter, or else the script file will not be registered.


File: wp-includes/class-wp-editor.php

View on Trac


Version Description
5.3.0 The $editor_id parameter was added.
2.5.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.