Das Speichern von Tabulatoren und Zeilenumbrüchen in beim Wechsel von HTML nach Visual Editor

Registerkarten, die in einem

-Block platziert sind, werden entfernt und Zeilenumbrüche werden entfernt, so dass eine einzige durchgehende Textzeile verbleibt. Dies tritt auf, wenn von HTML zu visuellen Editoren gewechselt wird. Gibt es eine Einstellung in TinyMCE, um dies zu vermeiden?

VOR:

Bildbeschreibung hier eingeben

NACH: Bildbeschreibung hier eingeben

Hier entlarvt es sogar den Code und spuckt Teile davon aus

 ... 

BEARBEITEN:

Ich denke, die beste Option ist, das -Tag vollständig zu entfernen und das Pre zu verlassen. Dies hat immer noch das Problem, doppelte Leerzeilen zu entfernen, aber es behält den Vorgriff unberührt, auch wenn zwischen den Editoren gewechselt wird.

Solutions Collecting From Web of "Das Speichern von Tabulatoren und Zeilenumbrüchen in beim Wechsel von HTML nach Visual Editor"

Zu function.php hinzufügen

 add_filter('tiny_mce_before_init', 'tiny_mce_before_init'); 

Und function tiny_mce_before_init:

 function tiny_mce_before_init($init) { $init['setup'] = "function(ed) { ed.onBeforeSetContent.add(function(ed, o) { if ( o.content.indexOf('
]*>[\\s\\S]+?< \\/pre>/g, function(a) { return a.replace(/(\\r\\n|\\n)/g, '
'); }); } }); }"; return $init; }

http://core.trac.wordpress.org/ticket/19666 – es ist bekannt, Bug, es gibt einen Workaround, aber nicht beheben Tabs nur neue Zeile Zeichen

Ich habe auch benutzerdefinierte shortcodes zu functions.php hinzugefügt, um zu vermeiden, dass Dinge beim Wechsel von HTML zu visuellen Editoren brechen. Hauptsächlich habe ich das für iFrames verwendet, aber vielleicht wäre es auch hier hilfreich.

Dieses Plugin scheint Leerzeichen zwischen


Tags zu erhalten.

Beibehaltung der Code-Formatierung

Für alle, die mit dem Einfügen von formatiertem


-Code im Visual Editor Probleme haben . Diese Lösung arbeitet seit vielen Jahren für mich und ich liebe es . Dieser Ansatz verwendet eine "mittlere", um korrekte Pre-Content und Zeichen zwischen den Editoren und wpautop() Frontend zu dienen.

Einfach in die functions.php einfügen

Es scheint schwer, aber deshalb muss jQuery im globalen Rahmen sein, da es mit der API von TinMCE kommuniziert. Das Dollarzeichen $ kann NICHT verwendet werden und der jQuery Text macht den Code unübersichtlich. Es ist meist die Erstellung von HTML-Elementen , die Platz braucht.

Wie es funktioniert: Ziemlich einfach, ohne es zu "berühren" -TinyMCE verwirren Sie es nicht . Es lohnt sich, es auszuprobieren!

 /** * PRE Handler * Solves 
 handle in WordPress tinyMCE editor * TAB support * TAB support to TEXT editor * Simple cleanup with Undo * Push cleanup (experimental) * Moves empty code chunks to beginning **/ function entex_tiny_mce_before_init(){ add_filter('tiny_mce_before_init', function($mceInit){ $mceInit['setup'] = 'ua_TinyMCE_setup_callback'; return $mceInit; }); add_action('before_wp_tiny_mce', 'entex_TinyMCE_javascript'); } add_action('after_setup_theme', 'entex_tiny_mce_before_init'); function entex_TinyMCE_javascript() { echo ''."\n"; }

Dieser Ansatz ist kein Hack oder eine schlechte Preg-Match-Lösung. Es erzeugt dieselben Konvertierungen wie die Standard-API.

Die PUSH-Bereinigung funktioniert, wenn Sie einen Code aus einer PHP-class oder was auch immer einfügen und die Chunk- oder Cutted-Out-function, die Sie präsentieren wollen, viel Platz oder Tabs "davor" hat. Es berechnet den Platz, der in der ersten vorhandenen Zeile auftritt.

Macht das:

  if(search_string){ var firstChar = search_string[0]; var remove = workspace.substr(0, workspace.indexOf(firstChar)); remove = "\r\n" + remove; data = ua_TinyMCE_helper_cleanBeginnings(data, remove, "\r\n"); } 

Das mögen:

 if(search_string){ var firstChar = search_string[0]; var remove = workspace.substr(0, workspace.indexOf(firstChar)); remove = "\r\n" + remove; data = ua_TinyMCE_helper_cleanBeginnings(data, remove, "\r\n"); } 

Übrigens , es kommt mit einem praktischen Fokus-Knopf , erscheint unten rechts im Editor und ist nützlich, wenn Sie mit einer großen Menge von


-Code-Chunks arbeiten. Deaktivieren Sie die Bildschirmeinstellungen "Aktivieren Sie den Editor für volle Höhe und die ablenkungsfreie function." für eine bessere Benutzeroberfläche.