Family Encyclopedia >> Electronics

How to Disable WordPress Auto-Formatting for Code Using a Simple Shortcode Trick

WordPress automatically formats post content, which can break code snippets for bloggers and developers. Plugins like Syntax Highlighter work but add bloat, and manual tweaks are time-consuming. Recently, while fine-tuning a client's site, our team uncovered a reliable shortcode method to disable auto-formatting selectively—no plugins needed.

Open your active theme's functions.php file and add this proven 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);

Save the file. Now, in posts, wrap code to keep raw with:

[raw]your unformatted code here[/raw]

Content outside the shortcode formats normally. Tested on live sites for flawless results.

Questions? Comment below.

Source: WPRecipes