How do I remove generated HTML around images in posts?

When I insert images into a blog post, wp is automatically inserted markup around the img element: specifically a div and a p (for the caption)…..where is that markup being generated in wp sourcecode?

Related posts

Leave a Reply

2 comments

  1. function filter_ptags_on_images($content){
       return preg_replace('/<p>s*(<a .*>)?s*(<img .* />)s*(</a>)?s*</p>/iU', '123', $content);
    }
    
    add_filter('the_content', 'filter_ptags_on_images');
    

    The p tags come from wpautop

  2. have a look inside the media.php file in the wp-includes folder. In WP 3.4, around line 198. This is the function which generates the markup for images, and if I am not mistaken, you should be able to filter it in your functions.php file.