web-dev-qa-db-fra.com

Comment puis-je supprimer les balises p qui sont ajoutées automatiquement dans tinymce

J'utilise tinymce 4.0.1 et il ajoute automatiquement les balises p lorsque vous commencez à taper ou appuyez sur Entrée. Comment puis-je supprimer dynamiquement ces balises p, puis réinsérer le contenu dans l'éditeur.

20
Juan Gonzales

Tinymce a besoin d'un élément de bloc root , qui est un paragraphe par défaut, pour pouvoir styler le contenu. Donc, la suppression de ces paragraphes ne fera que résumer tout le contenu en un seul paragraphe, car tinymce est obligé de l'utiliser comme élément de bloc racine.

13
Thariama

vous devez ajouter la ligne suivante à votre déclaration init

forced_root_block : ""

Donc, votre code complet sera comme ça:

    <script>tinymce.init({forced_root_block : "",selector:'textarea'});</script>

Cordialement!

47
turco_7

Vous pouvez supprimer la balise "p" en ajoutant forced_root_block : false à votre configuration tinymce ou masquer la barre d'état par statusbar: false

3
Fadel

Que diriez-vous

$("p").each(function(){$(this).parent().append($(this).html()); $(this).remove()})
2
gnuger

Pouvez-vous simplement modifier ce que TinyMCE met dans la base de données lorsque vous l’affichez? Voir mon post pour le même chose pour Rails .

var str = "{TinyMCE HTML string}"; /* however you get it */
str = str.replace(/^\<p\>/,"").replace(/\<\/p\>$/,"");

Ici, vous supprimez les balises p de début et de fin de l'ensemble TinyMCE HTML lorsque vous l'affichez. Ne plaisante pas avec les autres balises p ou la configuration TinyMCE.

Explication de l’expression regex (supprimée pour faciliter la lecture):

^<p> - find <p> at the start of the string (^) and replace it with nothing.
</p>$ - find </p> at the end of the string ($) and replace it with nothing.

J'espère que cela t'aides.

1
Ed Birm

Ajoutez ceci uniquement dans l'appel javascript:

forced_root_block : false
1
Rodrigo Prazim

Vous devez ajouter la ligne suivante à votre déclaration init.

forced_root_block : ""
1
user3212640

Ajoutez ceci à votre fichier functions.php et à la norme 

les balises seront supprimées en ajoutant quelques paramètres au hook tiny_mce_before_init . Si vous voulez voir comment ça marche, lisez la suite de cette page: https://codex.wordpress.org/TinyMCE

////////////////////////////////////////////////////////////////////////
//////////REMOVE STANDARD <P> FROM TINYMCE EDITOR/////////////////////////
///////////////////////////////////////////////////////////////////////
function my_format_TinyMCE( $in ) {
$in['forced_root_block'] = "";
$in['force_br_newlines'] = TRUE;
$in['force_p_newlines'] = FALSE;
return $in;
}
add_filter( 'tiny_mce_before_init', 'my_format_TinyMCE' );
0
Nateno

Insérez dans le thème functions.php le code suivant:

add_filter('tiny_mce_before_init', 'my_switch_tinymce_p_br'); 

function my_switch_tinymce_p_br($settings) {
    $settings['forced_root_block'] = false;
    return $settings;
}

Si vous souhaitez remplacer la balise "p" racine par une autre, remplacez false par "div" (par exemple).

0
Mikle Gardener