J'essaie d'empêcher WordPress d'envelopper automatiquement <img>
s avec des balises <p>
. J'ai essayé cet extrait recommandé dans mon functions.php
:
function filter_ptags_on_images($content){ // Remove p tags from around images
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');
Cela ne fonctionne pas si une image est l'élément premier d'un article ou d'une page. Lorsqu'une image précède un texte, elle est à nouveau entourée d'étiquettes <p>
. Des idées?
c'est une fonction qui décompresse les images des balises p dans the_content
/**
* WP: Unwrap images from <p> tag
* @param $content
* @return mixed
*/
function so226099_filter_p_tags_on_images( $content ) {
$content = preg_replace('/<p>\\s*?(<a .*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s', '\1', $content);
return $content;
}
add_filter('the_content', 'so226099_filter_p_tags_on_images');
Si vous voulez supprimer <p>
du contenu entier (pas seulement des images), cela peut vous aider
add_filter( 'the_content', 'wpse_226099_remove_p' );
function wpse_226099_remove_p( $content ) {
global $post;
return $post->post_content;
}
ou peut-être avec this-
remove_filter('the_content', 'wpautop')