Shortcode adding p and br tags

Not sure if this will be helpful to anyone else but the cause of the issue was a custom formatter the theme had:

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

FWIW: The theme is Avenue (from ThemeForest) which uses the “Pyre” theme framework. The reason another site that uses the same theme didn’t have the issue is the functions.php file was re-written/changed as part of a child theme and did not include the shortcodes.php file which had the above function.

Sorry to waste your time but I really appreciate your time/answers.

Leave a Comment