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?

2 Answers 2

function filter_ptags_on_images($content){
   return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);

add_filter('the_content', 'filter_ptags_on_images');

The p tags come from wpautop

  • is filter_ptags_on_images your solution? i just put that in my functions.php? i don't see the function in wpautop. thanks for showing me where that is regardless....good to know. :)
    – albert
    Commented Jun 26, 2012 at 0:55

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.