DISCLAIMER: this post is older than one year and may not be up to date with latest WordPress version.

If you often display code snippets on your WordPress blog, you know how bad WordPress automatic formatting can be. Happilly, with the help from a very cool shortcode you can be able to disable it on a certain portion of text.

The first thing to do is to add the following function to your functions.php file:

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);

Once done, you can use the [raw] shortcode in your posts:

[raw]Unformatted code[/raw]

If you’re interested in WordPress shortcode, I’ll be publishing a WordPress shortcodes related article on my blog Cats Who Code on thursday. Make sure you grabbed Cats Who Code RSS feed so you’re not going to miss it!

Thanks to TheBinaryPenguin for this awesome shortcode!


  1. Thanks a lot for this ^^

    I had tu put:

    remove_filter(‘the_content’, ‘wpautop’);
    remove_filter(‘the_content’, ‘wptexturize’);

    add_filter(‘the_content’, ‘my_formatter’, 99);

    at the end of plugin.php since remove_filter sent me an error

    Looks like the order of includes changed

    Sorry for my crappy English

  2. Sizeable Interactive’s Andy Stratton called out this technique last year for running the risk of breaking code dependent on the WordPress shortcode API—wptexturize and wpautop are actually pretty important for your blog to behave normally when using WordPress plugins, and adding a filter to ‘the_content’ instead of using the shortcode API is not best practice.

    Read more on Andy’s article: http://theandystratton.com/2011/shortcode-autoformatting-html-with-paragraphs-and-line-breaks (This article is now also linked from the WordPress forum post which is credited above)

  3. Thanks a lot! It works 😀 I used it for Nectgen gallery..

  4. hi, i ad the function but it doesn’t work… I don’t understand…
    could you please help me

  5. Hmm my www no is blank. How to back it?

    I past your code to my function.php in my theme and now I have white page :) When I change theme for example Tweenty Thirteen I have same issue.

Leave a Comment

Your email address will not be published. Required fields are marked *