Disable Automatic Formatting Using a Shortcode

function my_formatter($content) {
       $new_content = '';
       $pattern_full = '{(\[raw\].*?\[/raw\])}is';
       $pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
       $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

       foreach ($pieces as $piece) {
               if (preg_match($pattern_contents, $piece, $matches)) {
                       $new_content .= $matches[1];
               } else {
                       $new_content .= wptexturize(wpautop($piece));
               }
       }

       return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);

This goes in the PHP in your functions.php file. Once done, you can use the [raw] shortcode in your posts: [raw]Unformatted code[/raw]

Reference URL

Comments

  1. acepek

    This is so awesome! It works perfectly. I just needed to be able to disable a small portion (some javascript) within a post from getting the always helpful “autop” and this did it! Thank you.

  2. Will
    Permalink to comment#

    This did not work…

  3. Jeff
    Permalink to comment#

    works for most part, but tags are still automatically closed at times

  4. Duncan Michael-MacGregor
    Permalink to comment#

    This is spot on! I needed to remove formatting within my shortcodes, just adding:

    remove_filter('the_content', 'wpautop');
    remove_filter('the_content', 'wptexturize');

    Sorted it, thanks so much! :)

  5. PayteR
    Permalink to comment#

    Im using this snippet for more than a year, it was really helpful, but now, when i’m using Visual Composer Plugin it’s useless, because it create serious issues when it add closing paragraph tag and it breakes layout. I was not able to use frontend editor too. It needs to be fixed, or just don’t use it with Visual Composer.

  6. Regel
    Permalink to comment#

    I have found simple code bro,, remove_all_shortcodes();

     add_filter("the_content", "gui_the_content");
    
       /**
         * Retrieved data
         *
         * @access public
         * @param mixed $content
         * @return void
         * @link https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content
         * @generator WordPress Plugin Maker http://codecanyon.net/item/wordpress-plugin-maker-freelancer-version/13581496
         **/
    
        public function gui_the_content($content)
        {
            if ($this->live_edit == true)
            {
                remove_all_shortcodes();
                $new_content = '<form><div id="gui-editable">' . $content . '</div></form>';
            } else
            {
                $new_content = $content;
            }
            return $new_content;
        }
    
  7. mr_coffee
    Permalink to comment#

    This is legit, but can we take this an additional step further? This is ideal for fixing a post so long as that post is always loaded and edited withing the text(html) mode, but if I swap from that to the visual editor and back again, the html gets totally botched. Is there some similar sorcery we can add to our functions.php to ensure that it gets the same (or similar) treatment when switching between edit modes?

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in triple backtick fences like this:

```
<script>
  function example() {
    element.innerHTML = "<div>code</div>";
  }
</script>
```

We have a pretty good* newsletter.