Description
Support » Plugin: Advanced Editor Tools (previously TinyMCE Advanced). Search for: Search forums or Log in to Create a Topic. Includes an admin page for arranging the TinyMCE toolbar buttons, easy installation, a lot of bugfixes, customized “Smilies” plugin that uses the built-in WordPress smilies, etc. The admin page uses jQuery and jQuery UI that lets you “drag and drop” the TinyMCE buttons to arrange your own toolbars and enables/disables the corresponding plugins depending on the used buttons. Basically we use commentreplylink filter to make clicking on reply link call our own yourthemeeditor.moveform function instead of WordPress comment-reply.js AddComment.MoveForm function. This function of ours then does removal of TinyMCE if necessary and then calls WordPress comment-reply.js code to do its thing. What is the WYSIWYG Editor from WordPress? WordPress, along with many other platforms use what is called a WYSIWYG editor. This is the area used to create, edit and post content. Understanding how this editor works will help you better understand the advantage of using the TinyMCE Advanced WordPress plugin.
Make your editing experience as simple and good as possible by improving the way you work with the TinyMCE visual editor. This plugin adds custom CSS file(s) to the frontend and to the TinyMCE editor; and it allows you to populate TinyMCE’s ‘Formats’ dropdown with your own styles. It does not work fully with Gutenberg. The features in more detail:
1. Installs two CSS stylesheet files into your chosen location (so you can still do updates of the active theme and this plugin and even switch to another theme). In general you will need to fetch the auto-created stub files via FTP, edit them locally and upload them, overwriting the previous versions.
- editor-style.css is used for styling your TinyMCE Editor
- editor-style-shared.css is used for styles to be used by the frontend AND in your TinyMCE editor (so you do not have to copy)
To use this feature, you have to write your own CSS code into these files.
2. The main feature of this Plugin is to offer a Backend-GUI to create custom styles for TinyMCE (‘Formats’ dropdown) dynamically.
- Easy to add, change and delete styles
- No editing of source code required (excepting the CSS stylesheets)
- Allows you to add block- and inline elements which are not provided by TinyMCE, e.g. <figure>, <cite>, <q> etc.
- The plugin’s backend page contains a lot of description and some links to help you define your styles correctly
- Note that each style can have both CSS Classes and/or CSS Inline-Styles. The latter (excepting color) will even be applied to the Formats dropdown menu items. However, I do not recommend inline styles as they are inserted into the text of the post/page and remain unchanged if you later alter the style in the plugin settings – so in general stick to Classes!
How the two stylesheets are applied
The shared style sheet file is enqueued to be included on frontend pages (via the usual <link> tag in the <head> area) using the standard WordPress function wp_enqueue_style.
So, as with most other stylesheets, the statements in it will automatically apply to the whole HTML page. So define class names which will not collide with any already in use by the theme – and do not define styles for HTML elements without a limiting class name unless you want them to apply to all elements of that tag type (including in header, footer, sidebar…).
Both stylesheets are passed to TinyMCE by calling: add_filter(‘mce_css’, …)
What this causes to happen is that they are linked in to the HTML document which is the source for an <iframe>, which is the editing area of TinyMCE. So they should definitely only apply to HTML in the iframe – although I have heard that some situations, e.g. a cache plugin, may break this mechanism.
Gutenberg classic blocks
Any custom styles defined in this plugin will be shown in the ‘Formats’ dropdown, and their styles will be applied (in the HTML) as usual. But the two stylesheet files are NOT loaded with this instance of TinyMCE so the visual effect is missing while editing. Sorry, but I don’t have the time right now.
WordPress MultiSite
Although it does not check for MultiSite, the plugin works in the MultiSite environment, since WordPress uses a separate Options table for each MultiSite. You can reuse the same CSS files (by supplying the same custom directory in each Site), or add separate ones for each Site.
Current Languages
– en_US
– de_DE (Tim Reeves)
Background Information
Then and Now
This plugin was originally written by David Stöckl in 2013 – long before Gutenberg had been conceived, and at a time when several different plugins all tried to enhance the TinyMCE editor in different ways. It was abandoned a year later by David and I forked it in 2016, renamed to TinyMCE Custom Styles” (“TCS”). Most of those other TinyMCE-related plugins, notably WP Edit, are now abandoned; apart from this plugin, only TinyMCE Advanced, now also handling Gutenberg and renamed to Advanced Editor Tools (abbreviated hereafter to “AET”), and Just TinyMCE Custom Styles, seem to still be notably active in this area. AET is a great plugin – you can also check out its companion for developers Advanced TinyMCE Configuration. I use AET myself on most websites – but there a few things it’s not designed to do, and that’s where this plugin fills the gap. You can consider it as AET’s sidekick 🙂 If you do not need the feature with the two CSS stylesheet files, then you might consider using “Just TinyMCE Custom Styles”, which offers only the ‘Formats’ and has a modern user interface (however, the description here of how to use the features is probably more exhaustive).
TinyMCE and the WordPress theme
The goal is to configure the TinyMCE backend editor so that its ‘Visual’ tab displays content as closely as possible to how it will look on the content area of the actual website. To this end, WordPress has for years provided a feature which can be used by themes, called ‘editor styles’. This allows a theme to make known to WordPress one or more CSS files, which should contain a subset of the theme’s styles, those which apply to the display of content in the content area (i.e. excluding styles applying to headers, sidebars, footers, archives, comments, …). If the theme provides this feature, that CSS file (or files) are loaded to TinyMCE to achieve the goal. The default location is one file named ‘editor-style.css’ in the theme’s root directory. In fact, WordPress seems to find this file, if present, even if the theme does not register it. All good modern themes provide this feature.
Advanced Editor Tools
The really good plugin ‘Advanced Editor Tools’ (“AET”, from and maintained by Andrew Ozz, a WordPress core developer, now attributed to Automattic, the company effectively behind WordPress) helps with one of the problems noted above: It gives you complete freedom to select which buttons and dropdowns are displayed in TinyMCEs header – in particular you can just drag the ‘Formats’ dropdown into one of the bar areas, exactly where you want it. AET also has a number of other options, for example to prevent TinxMCE from removing tags and minifying the text in the ‘Text’ tab, which is very useful when you need to look at the HTML and do any manual adjustment.
Shortcomings in the standard setup
There are some regrettable weaknesses in the unenhanced situation:
Tinymce Plugin
Any custom CSS which you set in the WordPress Customizer is not applied to TinyMCE (it is written out as direct styles in the <head> of each website page).
The styles which the theme provides for TinyMCE are applied to the HTML displayed by the editor. This is fine with fixed styling of elements like <p>, <ul> or <blockquote>. But a theme may also include optional styles to change or enhance the display of an element – e.g. ‘.small’, ‘.screen-reader-text’, ‘.beforelist’, ‘.hilitebox’ and so on. In this case, and without help from any plugin, there is no way to select any of them from the menu or toolbar of TinyMCE in order to apply them to an element, so a user would need to know the style names and apply them manually in the ‘Text’ tab – not good. See below ‘importcss’, but note that it overwrites anything other plugins have put in the ‘Formats’ dropdown.
In the standard configuration (i.e. without enhancer plugins) TinyMCE is not even configured to show the ‘Formats’ dropdown, which we need to apply custom styles to elements in the text.
The TinyMCE Formats dropdown
Internal name: ‘styleselect’. By default, this dropdown is not displayed. You can add code e.g. to your theme’s functions.php, to have it shown. Its default contents are 4 entries with corresponding submenus: Headings, Inline, Blocks and Alignement.
TCS always registers the ‘Formats’ dropdown to TinyMCE’s second toolbar, this does not seem to be a problem for AET.
It is in this area that TCS is really usefull: It allows you to create named styles, so you can name them descriptively, e.g. to show if the style is a block or inline style, if it uses the Wrapper option, and so on. Basically you will be adding styles to the dropdown which are defined in a stylesheet from the theme, or in your ‘editor-style-shared.css’, to allow you (or your customer) convenient and understandable access to them while editing.
The TinyMCE JavaScript plugin ‘importcss’
When the AET plugin is active, it offers an option “Create CSS classes menu” (subtitle: Load the CSS classes used in editor-style.css and replace the Formats menu). When checked, a TinyMCE JavaScript plugin called ‘importcss’ is loaded to the frontend, which parses the CSS loaded to TinyMCE (i.e. from your theme’s ‘editor styles’ and this plugins ‘editor-style.css’) and populates the ‘Formats’ dropdown with a selection of those styles. Styles applying directly to HTML elements without a class name are skipped. Styles applying to a tag and containing a class, e.g. “h1.page-title” will be included and work as expected. But for classes not limited to a tag, it has no way of knowing if the class is intended to be applied to a block element or as an inline element, nor to which tags it should apply or should use, so it simply offers them as inline elements, which may or may not be their intended use. Styles with a pseudo-class or pseudo-element (e.g. ‘:hover’, ‘::before’) will be omitted. The bottom line is, that however good the themes editor styles are, we end up with a sub-optimal population of the Formats dropdown: It will be too long (including many styles we don’t need or don’t understand), and some valuable styles will be missing or wrongly classified as inline styles. Given all these shortcomings, I have not found this feature to be of much use in practice.
Credits
This plugin is a fork of TinyMCE Advanced Professsional Formats and Styles which has been abandoned by the original author. Initially I just fixed a JavaScript bug so that it worked again, and cleaned up the code and messages a bit. Since then, a number of further improvements, see the changelog. I was born in 1954 and would be glad if someone else would now take over this plugin and further improve it. Translations are also very welcome.
- David Stöckl, Vienna, the original author. Many thanks!
- The plugin icon (Der Bitkönig) was drawn by Gabriele Meischner, muchas Gracias!
Installation
- Upload the Plugin to your wp-content/plugins/ folder
- Activate the Plugin
- Go to Settings -> TinyMCE Custom Styles
- Follow the instructions on the screen – write your CSS and create your custom formats
Important: Some Settings of TinyMCE or certain TinyMCE Plugins require you to do some manual settings for the Plugin to work. The Plugin WILL work, if you configure it correctly – check the FAQ for help.
FAQ
I cannot edit editor-style.css and editor-style-shared.css. What is wrong?
The Plugin was probably not able to create the files, due to problems with your server filesystem settings. Please create these files in the selected directory manually, and make sure the directory read/write access is set to 777.
I have edited the files editor-style.css and editor-style-shared.css, but my visual editor is not styled. What is the problem?
- You should empty the cache of your Web Browser, this is often the reason for the styles being applied with some delay.
- Check this with simple styles like body { background-color:black; } to see if it basically works.
- Maybe there are some functions inside of your Theme / other Plugin, which overwrite the settings of this Plugin. Please check this out as it seems to work in most cases.
The file editor-style.css is not working in the frontend of my website, but it is applied to the backend editor. Why?
Make sure that your Theme calls the function wp_head(); inside the header of your template.
I have created some custom formats/styles, I can see the dropdown, but the formats/styles which I have created on the settings Page just do not work. What is wrong?
You have to be careful when creating custom styles if you are doing it for the first time. If you make a row with an HTML blockquote element and you choose “Inline” from the radio buttons, this style will NOT work, as blockquote is not an HTML inline element.
Try something easy like:
– Name: My red text
– Type: inline
– Type value: span
– CSS style: color / #f00
Check if this style works. If so, proceed to other styles. They will only work if you use correct semantics.
Tinymce Wordpress Plugin
Rich Text Editor online, free
Does it work with shortcodes?
In general, no, because the shortcode is only expanded to HTML in the frontend – in the backend (editor) the shortcode is normally displayed as a shortcode, to allow it to be seen and edited (e.g. change shortcode parameters, position on the page etc.). Styles in editor-style-shared.css which match the HTML generated by the shortcode will of course work – in the frontend. There is no point putting such styles in editor-style-shared.css, so if you prefer, put them in the themes custom CSS (if provided, but not WordPress customizer, as that inserts the CSS inline on every page).
What about media from the media library?
An image for example, when inserted via the media library, will show as the [caption] shortcode in the “Text” tab of the editor. To allow the page to be viewed visually, an exception is made and on the visual tab the image and caption are displayed, as TinyMCE itself replaces the shortcode with HTML. The HTML generated by TinyMCE (div dl dt a img br dd) is very different to that generated by WordPress at the frontend (div a img p). So in general, I recommend to use the text tab to fix image styles / encapsulation – my experience is that it’s a real hit and miss affair with styles in the ‘Formats’ dropdown (more miss than hit).
Reviews
This is a step-by-step guide/tutorial with images on how to install, setup, configure and use the free version of ‘TinyMCE Advanced’ WordPress plugin.
It is in use by 2+ million active websites with 4.5 star review rating.
What is TinyMCE Advanced?
The ‘TinyMCE Advanced’ is of the most popular WordPress plugin to extend visual text editing features. The most useful option is the addition of specific fonts and font size. It allows insertion of table and tables resizing with mouse drag. It also permits saving-loading custom editing feature or a restore defaults option.
TinyMCE Advanced Editing Features
Fonts, Fonts Size, Underline, Strikethrough, Justify, Increase/decrease intent, Clear Formatting. Subscript, Superscript, Horizontal line, Special characters insertion, Paste as Text, Find and replace, Show Blocks, Source code, Fullscreen, Insert date/time, Insert/Edit Video, Nonbreaking space. Left to Right/Right to Left, Emoticons, Page break.
How to Install TinyMCE Advanced
To install, go to ‘Plugins > Add New’ and on the top right corner next to ‘Keyword’ type ‘TinyMCE Advanced’. Wait for the plugin to appear and then click its ‘Install Now’ button. Wait again until you see the its ‘Activate’ button and click it.
From the WordPress side menu, select ‘Plugins’, find the ‘TinyMCE Advanced’ and click its ‘Settings’ link.
TinyMCE Advanced Editing Buttons Page
Then the settings page of the plugin will appear. Block Editor (Gutenberg)’ is the standard option of WordPress. The ‘Classic Editor (TinyMCE)’ option is given if you also use the plugin ‘Classic Editor‘.
You can click the ‘Enable the editor menu’ to activate the below editing buttons arrangement for your post editor. From the ‘Unused Buttons’ section you can click on a editing button, drag, drop and rearranging them on the above editor. This page is similar for the standard WordPress configuration (without Classic Editor plugin).
TinyMCE Advanced Extended Options
The same page also gives extended options and advanced options. There are:
- Append all buttons to the top toolbar in the Classic Paragraph and Classic blocks: Moving buttons to the top toolbar, even those by other plugins.
- : Enabling more list options: upper/lower case letters for ordered lists etc.
- : Replacing browser’s context (right-click) menu.
- Alternative link dialog: Opening TinyMCE link dialog with toolbar link button or link menu.
- : Replacing font sizes with alternative ones.
TinyMCE, Advanced Options
- Add Classic Paragraph block: Adding Classic Paragraph block to add multiple paragraphs, tables, galleries, video, fonts and colors ( essentially using all available options to make it easier to use.
- Make the Classic Paragraph or Classic block the default block (hybrid mode): Default block is added when pressing ‘Enter’ in title or by clicking under a block. With this mode, it adds improvements for the case of the Classic block.
- Keep paragraph tags in the Classic block and the Classic Editor: Maintaining paragraph tags on Classic block and Classic Editor. It doesn’t remove <p> and <br> tags and shows them in the Text tab to allow use of more advanced coding without much filtering (test it first).
- Create CSS classes menu: Loading available CSS classes in editor-style.css.
TinyMCE Advanced Tables Advanced Options
- Enable resizing of tables, rows, and columns by dragging with the mouse: Table, rows, columns can be resized by dragging (sizes must be set with inline CSS style). Responsiveness is affected. Disabling this will not allow the editor to add inline CSS for a cleaner HTML code. Then table, rows and cells size values must be types in the advanced options tab.
- When inserting a table set the HTML border attribute to 1: Adding table border if theme allows it.
- When inserting a table show a grid where the number of rows and columns can be selected by dragging with the mouse: With the grid disabled, number of rows/columns can be inserted in ‘Insert Table’ dialog.
- Jump to the next cell when pressing the tab key while editing a table: If disabled, pressing tab key will jump outside editor.’
- Show the advanced tabs in the table properties dialogs: Allows setting of inline table CSS for each row and cell.
TinyMCE Advanced Administration
It gives a few more options to export and import TinyMCE settings for more flexibility and safety. It also allows more options like:
- The Classic Editor (Add New and Edit posts and pages)
- Other TinyMCE editors in wp-admin
- TinyMCE editors on the front end of the site
Wp Editor Plugin
Back to the list of The Best WordPress Plugins