Always Edit In HTML


If you find yourself entering HTML code into the WordPress page/post editor only to have it reformatted or worse removed when in Visual mode then here is the solution for you.

Always Edit In HTML is a WordPress plugin that removes the “Visual” tab in the page/post editor and opens up your page or post in HTML mode, preserving your HTML code.

Why would you need this plugin?

The WordPress page/post editor has two tabs at the top right – “Visual” and “Text”.

  1. The Text tab allows you to enter HTML code onto the page or post and when saving or publishing the post it preserves your code just the way you entered it.
  2. The Visual tab has all the fancy writing style tools but when you save or publish your page or post, WordPress parses and formats the content which may results in your HTML code not working or even being removed.

WordPress does not remember the tab option for each page or post. It will open up a page or post using whichever Visual or Text tab you last used.

This means that if you were editing a post using the Visual tab, saved it and then edited the page or post you had entered the HTML code into, that page would open in Visual mode and you could loose your HTML code.

If only there was a plugin that gave you the option to always open up a page or post in HTML

Ta da! Here’s one.

Note: For WordPress 5.x users, this plugin will still work when the Classic Editor plugin is installed and enabled. It does not work with the Gutenberg block editor.

Plugin Page

Always Edit In HTML


  • Always edit in HTML options box. Check to turn on.
  • Option turned on and page/post is in HTML mode. Visual and Text tabs removed.


  1. Download the plugin zip file & unzip it
  2. Copy the folder always-edit-in-html into the directory /wp-content/plugins/
  3. Activate the plugin through the ‘Plugins’ menu in WordPress

Open up a page, post or publicly declared custom post type and you will now see the “Always Edit In HTML” option box on the right column.

Check the option and save.

Next time you open the same page or post it will open up in HTML mode, removing the “Visual” and “Text” tabs.

Uncheck the option at any time to get the “Visual” and “Text” buttons and default opening behaviour back.


Does the plugin do anything else?



September 24, 2021
Despite WordPress’s “Add Plugin” saying that it couldn’t install this because it doesn’t work with my version of PHP (7.0), I was able to download it as a ZIP, upload it to my site, install it and activate it. And it works fine, in conjunction with the Classic Editor plugin. It’s great that it works on a page-by-page/post-by-post basis, because there are pages that I’d prefer had a visual editor for others to edit. But for pages that WordPress wants to “mess up”, it’s great to be able to tell it: “Hands off!”
Read all 7 reviews

Contributors & Developers

“Always Edit In HTML” is open source software. The following people have contributed to this plugin.


Translate “Always Edit In HTML” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Tested on WordPress 6.6 with Classic Editor plugin activated
  • Added tag Requires Plugins: classic-editor


  • Testing on WordPress 6.2 with Classic Editor plugin activated


  • Fixed PHP fatal error in PHP 8.x


  • Tested on WordPress 6.0 with Classic Editor plugin activated


  • Tested on WordPress 5.6 with Classic Editor plugin activated


  • Tested on WordPress 5.0.3 with Classic Editor plugin activated
  • Added note to readme – this plugin works on 5.0 in conjunction with the Classic Editor plugin


  • Moved to minor release versioning (added extra .0)
  • Tested on WordPress 4.8.1
  • Added Requires PHP tag


  • Corrected spelling mistake


  • Changed PayPal donate link from Gravitational FX to Zero Point Development
  • Tested on WordPress 4.7
  • Corrected changelog version for limecanvas removal


  • Added correct contributor DeveloperWil
  • Updated screen shots
  • Brand image replacement with Zero Point Development mark
  • Changed all references of “HTML tab” to “Text tab”
  • Checked compatibility with 4.5.2
  • Removed limecanvas contributor


  • Checked compatibility with 4.4
  • Changed contributor to DeveloperWil


  • Checked compatibility with 4.3


  • Checked compatibility with 4.2.2
  • Changed some mentions of “HTML” to “Text” for the reference to the editor tabs.
  • Now supports any publicly declared custom post types


  • Checked compatibility with 4.1.1
  • Modified to work with UI changes from 4.1


  • Checked compatibility with 4.1
  • Added asset icon
  • Addressed PHP notice generated by not checking to see if the wpnonce exists before verifying in *_save_postdata


  • Checked compatibility with 4.0
  • Changed getHTMLEditStatus() function name to always_edit_in_html_get_html_edit_status()


  • Checks to make sure we’re in the backend Dashboard
  • Checks to make sure the global $post is set
  • Checked compatibility with 3.9.1


  • Fixed the bug that opened the window in Visual mode even though the tab was missing – doh!
  • Checked compatibility with 3.9 RC1


  • Tested with 3.5.1
  • Now works with textarea HTML attribute
  • Added language support


  • Tested with 3.4 (beta 4).


  • Initial release.