Disable WordPress automatic formatting on posts using a shortcode

June 23, 2009 · Print This Article

If you often display code snippets on your WordPress blog, you know how bad WordPress automatic formatting can be.

With this shortcode you can disable it on a portion of text.

Add the following function to your themes functions.php file:

 


function formatter_shortcode($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', 'formatter_shortcode', 99);

Then you can use the [raw] shortcode in your posts:

[raw]Unformatted code[/raw]


Your choice for site templates and wordpress themes

Comments

One Response to “Disable WordPress automatic formatting on posts using a shortcode”

  1. Automate The Maintenance of your WordPress Blog – FREE! on July 10th, 2009 6:59 pm

    […] Disable WordPress automatic formatting on posts using a shortcode …- Disable WordPress automatic formatting on posts using a shortcode,If you often display code snippets on your WordPress blog, you know how bad Wor… […]

Got something to say?

You must be logged in to post a comment.