web-dev-qa-db-fra.com

Empêche l'éditeur de supprimer les balises <p> et de les remplacer par nbsp

Lorsque j'entre du contenu dans l'éditeur WYSIWYG des articles/pages, je ne reçois pas <p> à la fin des paragraphes, mais simplement &nbsps. Si je place manuellement <p></p> en mode HTML, ils sont supprimés dès que je bascule en mode "visuel". Ceci est répété dans plusieurs sites (j'ai pensé que c'était le thème mais ce n'est pas le cas).

J'ai lu des dizaines de sujets et de réponses, mais aucun ne résout mon problème. J'ai essayé add/remove wpautop dans mon fichier functions.php mais rien n'y fait.

Je ne veux pas utiliser un plugin tinymce.

5
Nona Man

J'ai fait des recherches approfondies et trouvé la réponse - J'utilise maintenant un crochet sur 'tiny_mce_before_init'.

Sur la base de autres réponses (merci spécial à la réponse n ° 2 @Chip Bennett ), j’ai utilisé le code suivant dans mon functions.php pour sécuriser les sauts de paragraphe (dans le mode HTML de l’éditeur, ils apparaissent sous la forme & nbsp deviennent des paragraphes sur le front-end):

function tinymce_config_59772( $init ) {
   // Don't remove line breaks
   $init['remove_linebreaks'] = false; 
   // Convert newline characters to BR tags
   $init['convert_newlines_to_brs'] = true; 
   // Do not remove redundant BR tags
   $init['remove_redundant_brs'] = false;

   // Pass $init back to WordPress
   return $init;
}
add_filter('tiny_mce_before_init', 'tinymce_config_59772');

Vous pouvez trouver sur le site tinyMCE site les différentes configurations possibles.

3
Nona Man

Vous pouvez essayer le CKEditor

Wordpress CKEditor

1
Androliyah

vous pouvez également dire que TinyMCE est intégré à WordPress et que l'éditeur HTML supprime certains caractères en faveur de &nbsp ... c'était à l'origine pour la sécurité et la conviction que nous n'avions plus besoin de <br> ou <p>

1
Damien