The mce_external_plugins WordPress PHP filter allows you to add external TinyMCE plugins to the WordPress editor.
Usage
add_filter('mce_external_plugins', 'my_custom_external_plugins'); function my_custom_external_plugins($plugins) { // your custom code here return $plugins; }
Parameters
- $external_plugins (array): An array of external TinyMCE plugins.
- $editor_id (string): Unique editor identifier, e.g. ‘content’. Accepts ‘classic-block’ when called from block editor’s Classic block.
More information
See WordPress Developer Resources: mce_external_plugins
Examples
Add an external plugin to TinyMCE
This example adds a custom external plugin called ‘myplugin’ to the WordPress editor:
add_filter('mce_external_plugins', 'my_custom_external_plugins'); function my_custom_external_plugins($plugins) { $plugins['myplugin'] = 'https://example.com/wp-content/plugins/myplugin/mce_plugin.js'; return $plugins; }
Add multiple external plugins
This example shows how to add multiple external plugins to the WordPress editor:
add_filter('mce_external_plugins', 'my_custom_external_plugins'); function my_custom_external_plugins($plugins) { $plugins['plugin_one'] = 'https://example.com/wp-content/plugins/plugin_one/mce_plugin.js'; $plugins['plugin_two'] = 'https://example.com/wp-content/plugins/plugin_two/mce_plugin.js'; return $plugins; }
Remove an external plugin
This example demonstrates how to remove an external plugin from the WordPress editor:
add_filter('mce_external_plugins', 'my_custom_remove_external_plugins'); function my_custom_remove_external_plugins($plugins) { unset($plugins['plugin_to_remove']); return $plugins; }
Add external plugin only for specific editor ID
This example adds an external plugin to the WordPress editor only for a specific editor ID:
add_filter('mce_external_plugins', 'my_custom_external_plugins', 10, 2); function my_custom_external_plugins($plugins, $editor_id) { if ($editor_id === 'my_editor_id') { $plugins['myplugin'] = 'https://example.com/wp-content/plugins/myplugin/mce_plugin.js'; } return $plugins; }
Add external plugin with a specific button
This example adds an external plugin to the WordPress editor along with a button to access the plugin’s functionality:
add_filter('mce_external_plugins', 'my_custom_external_plugins'); function my_custom_external_plugins($plugins) { $plugins['myplugin'] = 'https://example.com/wp-content/plugins/myplugin/mce_plugin.js'; return $plugins; } add_filter('mce_buttons', 'my_custom_mce_buttons'); function my_custom_mce_buttons($buttons) { array_push($buttons, 'myplugin_button'); return $buttons; }