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?

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

|improve this answer|||||
  • 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 Jun 26 '12 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.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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