If you've ever had a WordPress blog post or page in which you found yourself writing more than a little HTML, you've experienced the frustration of finding your beautiful markup surrounded in
<p>
tags. The problem only gets worse when you start throwing jQuery into the mix. Who on earth gave WordPress permission to throw in
<br/>
tags inside a
<script>
, anyhow?!
Up until now, we've only had a couple of options:
- First, we could use conditional logic to require an external PHP file. This was bad for several reasons.
- It's not friendly for the end user. Who wants to have to edit a PHP file?
- The content is not in the WordPress database, which means it isn't searchable inside the dashboard, and it isn't backed up with the rest of the site.
- It removes framework functionality. Robust WordPress frameworks have places to add content above and below the main post content area, and an external PHP file destroys this greatly.
- The second option is to use the existing plugins to disable WordPress formatting, but none of these plugins empower the user to toggle this setting on a page-by-page basis. After all, most articles don't have that much
HTML
in them. Nobody wants to go through 500 old blog posts and manually add <p>
tags to them, do they? We didn't think so either.
As a web designer that's used WordPress successfully for several years, I finally decided these shenanigans had to stop once and for good. I built a simple but elegant plugin that lets you disable auto-generated HTML on a page-by-page basis.
I hope you use and enjoy
Don't Muck My Markup as much as I enjoyed building it.
Note: this plugin does not work on all WordPress themes, because some themes don’t handle the filter sequence correctly. This plugin does work for well-programmed themes such as the Twenty Fourteen theme and the Genesis Framework (and child themes).