Stop WordPress from wrapping <img> up with <p>
Img: “WordPress, why you wanna wrap me up?”
WordPress: “You looked cold.”
Img: “Well I’m not.”
WordPress: “Oh.”
Here’s how to stop that from happening:
// stop wordpress from wrapping images in <p> tags
function filter_ptags_on_images($content) {
// do a regular expression replace...
// find all p tags that have just
// <p>maybe some white space<img all stuff up to /> then maybe whitespace </p>
// replace it with just the image tag...
return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
// we want it to be run after the autop stuff... 10 is default.
add_filter('the_content', 'filter_ptags_on_images');
Published on April 20, 2012