WordPress Installation
The Editor42 plugin brings Editor42 to WordPress: an Editor42 block in the block editor or, with one switch, the classic editing screen with Editor42 in place of the TinyMCE WordPress ships. It is free and MIT-licensed, needs no account and no API key, and loads nothing from outside your site.
Why replace TinyMCE in WordPress
WordPress 7.0 still edits classic content with TinyMCE 4.9.11, released in July 2020 and the last TinyMCE 4 there is. The Classic Editor plugin, the Classic block and the visual editor fields of themes and plugins (wp_editor()) all run on it. TinyMCE's later releases fixed a series of cross-site scripting (XSS) issues, from 5.6.0 in November 2020 to 6.8.4 in June 2024, and none of those fixes was ever released for TinyMCE 4.
Editor42 is a maintained fork of the last MIT-licensed TinyMCE, with those fixes and the ones listed on the Security page. The plugin bundles it and never loads the TinyMCE inside WordPress, so it keeps working on future WordPress versions that no longer ship one.
Download the plugin
The zip installs on WordPress 6.2 and newer. Do not unzip it: WordPress takes the zip as it is.
Install the plugin
In your WordPress admin, open Plugins → Add Plugin and press Upload Plugin. Choose the zip, press Install Now, then Activate Plugin.
Choose your editor
Open Settings → Editor42. Default editor has two options:
- Only a Gutenberg block (the default): the block editor stays, and Editor42 is one of its blocks.
- Editor42 as the main editor: posts and pages open in Editor42 instead of the block editor.
Try the Editor42 block first, then switch to Editor42 as the main editor. You can switch back at any time.
Write with Editor42
Add an Editor42 block from the block inserter. Once Editor42 is the main editor, every post and page opens in it.
What you get
- A rich toolbar out of the box: two rows with tables, colors, emoji, code view, find and replace and accordions, with the menubar above it.
- Your own toolbar: in Settings → Editor42, drag buttons in and out or load the Simple or Full-featured preset.
- Editor42 in the other classic editor fields too: product descriptions, text widgets, plugin fields.
- The WordPress media library wherever a picture comes in: Add Media, the Browse button of the image dialog, and pictures you paste or drop into the text, which are uploaded to the library.
- Image alignment and captions stored exactly as the classic editor stored them; the older
[caption]spellings are read too. - The WordPress link dialog, with search over your posts and pages.
- The Text tab with quicktags, next to the Visual tab.
- Live previews of galleries, embeds and media shortcodes, the shortcode text kept byte for byte.
- In the block editor: paragraphs, headings, lists and quotes turn into an Editor42 block and back with one click, a toolbar that stays in view on long texts, fullscreen editing over the whole window, in-place editing in the Site Editor, the pattern editor and the device previews, and the block editor's own shortcuts (save, the list view, moving or removing the block) from inside the text.
- The text wears your theme's styles while you edit.
- A right-to-left site gets a right-to-left editor.
Your content stays yours
Content is stored the way the classic editor always stored it: standard HTML in post_content, paragraphs restored by wpautop on output, captions as the regular [caption] shortcode. Posts written before the plugin open and save unchanged, and posts written with it stay valid if you deactivate it. An Editor42 block keeps rendering on your site without the plugin; the block editor then shows it as a block it does not recognize, and one click keeps it as HTML. The plugin stores one option, and uninstalling removes it.
Buttons from other plugins
Buttons that other plugins add to the classic editor through the mce_buttons and mce_external_plugins filters are written for the TinyMCE inside WordPress core, and Editor42 does not load them. A plugin can offer its button to Editor42 through the editor42_toolbar_buttons and editor42_external_plugins filters, described in the README inside the plugin; the button then shows up in the toolbar configurator like any other.
Requirements
- WordPress 6.2 or newer, tested up to 7.1, or ClassicPress 2
- PHP 7.0 or newer
Everything the plugin uses ships inside it and loads from your own site: no CDN, no accounts, no tracking.
Source and licence
The plugin is MIT-licensed, and its own PHP, JavaScript and CSS ship unminified. The bundled engine is Editor42 42.0.0 as published in editor42com/editor42-dist (tag 42.0.0), minified with the readable file next to every minified one. Its source is the editor42 branch of editor42com/editor42, at its 42.0.0 release commit; yarn && yarn build there writes the same files to modules/editor42/js/editor42/.



