Par défaut WordPress ajoute des balises <p> autour des images insérées via l’éditeur WYSIWYG.
On peut les transformer en balises <figure> en ajoutant un filtre au niveau du fichier functions.php
<?php
add_filter( 'the_content', 'flooor_replace_p_around_img', 99 );
function flooor_replace_p_aroud_img( $content ) {
$content = preg_replace(
'/<p>\\s*?(<a rel=\"attachment.*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s',
'<figure>$1</figure>',
$content
);
return $content;
}
Ou carrément enlever la balise paragraphe
<?php
add_filter( 'the_content', 'flooor_filter_ptags_on_images', 99 );
function flooor_filter_ptags_on_images( $content ) {
return preg_replace('/<p>\\s*?(<a .*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s', '\1', $content);
}