WordPress has a habit of automatically formatting codes which can become a huge problem for some bloggers. You can use the Syntax Highlighter Plugin or encode all codes manually, but these ways have their own shortcomings. Recently working on a client’s site, we discovered a useful trick that will disable automatic formatting in WordPress posts through the use of shortcodes.
First you would need to open your theme’s functions.php file and paste the following code:
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 you have pasted the codes above and uploaded the file, then you are ready to use the shortcodes. Simply use the shortcode below when writing the post:
[raw]Unformatted code[/raw]
Let us know if you have any questions.
Source: WPRecipes
This adds empty paragraphs and returns inside WooCommerce templates.
II don’t think this works anymore. I’m using WP 4.0, and my && in my javascript still gets rendered as & # 038; & # 038;
Excellent! I’ve tried plugins, but they make they work globally – all pages are affected. This is a super quick fix.
Nice piece of code. Made my day. Thanks for sharing.
Hello,
Thanks for this tip. Kind of nice to be able to have raw scripts/html for select complex forms I am using, without having to pay attention on the remaining site.
Michael
Im seeing this code everywhere , and I’m not so sure it’s a valid solution as it messes with a lot of other shortcodes ( if you theme is using theme ) , and it seems to add back formatting to areas in which did not have auto formatting in the first place ie : with get_the_excerpt() or something like this.
Is there not an easier way to strip away a selected area of content to be not formatted this way?
Umm, we simply use the Syntax Highlighter to display codes. Rest of formatting is ok. Unfortunately there is no real easy way.
This still does not take out the tags from posts/pages.
Thanks.
Excellent, this is definitely one frustrating part of WordPress.