WordPress à la mauvaise habitude de placer des balises <p> autour des images. Avec l’arrivée du HTML, la balise <figure> semble plus appropriée..

Voici une fonction – a placer dans votre fichier function.php – qui va remplacer à la volée les balises <p> par des balises <figure>.

// unautop for images
function fb_unautop_4_img( $content ) {
    $content = preg_replace(
        '/<p>\\s*?(<a rel=\"attachment.*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s',
        '<figure>$1</figure>',
        $content
    );
    return $content;
}
add_filter( 'the_content', 'fb_unautop_4_img', 99 );

Simple, efficace et en accord avec HTML5 ^^

Source