EN / ZH
Disabling WordPress Auto-Formatting via Shortcodes

When publishing articles in the WordPress editor, if you haven’t applied any specific formatting to your text, the editor will automatically format your code. For example, when you type a line of text, it automatically wraps it in <p> </p> tags. This feature can sometimes cause a lot of headaches, especially when you’re trying to apply custom styles to specific passages. So we need a workaround.

By using shortcodes, we can filter out WordPress editor’s auto-formatting.
Add the following code to your theme’s functions.php:

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

After adding this code, when writing posts, simply use the shortcode format [raw] content you want to exempt from WordPress auto-formatting [/raw] in the HTML editor mode. Any code within the raw tags will not have additional tags automatically added to it.