Retirer les balises paragraphe autour d’une image dans WordPress

Vous en avez marre de ces balises p qui entourent vos images dans l’éditeur WYSIWYG de WordPress ? Voilà un bout de code pour s’en débarrasser !

Quand vous ajoutez une image dans un article ou une page WordPress comme ceci :

lorem ipsum dolores
<img src="exemple.jpg">
Primi igitur omnium statuuntur

Vous vous retrouvez avec ça :

<p>
  	lorem ipsum dolores
</p>
<p>
  	<img src="exemple.jpg">
</p>
<p>
  	Primi igitur omnium statuuntur
</p>

C’est assez pénible, surtout si vous voulez avoir une largeur d’image supérieure à celle de vos paragraphes.
Pour vous en débarrasser, ouvrez function.php et collez ce bout de code :

// Retirer les balises p autours des balises img
add_filter( 'the_content', 'replace_p_in_img', 99 );
function replace_p_in_img( $content ) {
	   $content = preg_replace(
	      '/<p>\\s*?(<a rel=\"attachment.*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s',
	      '<figure>$1</figure>',
	      $content
	   );
	   return $content;
}

Maintenant les balises p sont remplacée par des balises figure :)
Dans le cas où vous utilisez le plugin ACF, vous remarquerez que l’éditeur WYSIWYG a le même comportement.
On va donc ajouter un bout de code qui acf_the_content :

// Retirer les balises p autours des balises img dans acf
add_filter( 'acf_the_content', 'replace_p_in_img_acf', 99 );
function replace_p_in_img_acf( $acf_the_content ) {
	   $acf_the_content = preg_replace(
	      '/<p>\\s*?(<a rel=\"attachment.*?><img.*?><\\/a>|<img.*?>)?\\s*<\\/p>/s',
	      '<figure>$1</figure>',
	      $acf_the_content
	   );
	   return $acf_the_content;
}

See ya’ space integrateur

196

Auteur : PUShAUNE

Graphiste freelance, J'ai créé un collectif à Marseille appelé Bison Bleu. Je tiens un blog pour partager mes techniques et mes expériences. Je donne aussi des cours aux élèves de l’école Axe Sud.

À ton tour de participer :

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *