I realize the question has been asked alot, how to remove <p>
around <img>
.
However, is it possible to wrap my code using a shortcode so none if it renders with unsightly formatting.
For example, the following function works when using [raw]
shortcode inside WP content editor, but is it possible to also have it also work with ACF (acf_the_content)?
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);
Looking at acf_the_content I don’t see any reason why you couldn’t do the same thing by using acf_the_content everywhere you have the_content in your above code. acf_the_content basically calls most of the same filters that the_content runs as far as I know.