Formatierung von Shortcode-Inhalten beibehalten

Wie kann ich die Formatierung des Inhalts innerhalb eines Shortcode-Blocks beibehalten, wenn ich zwischen dem visuellen Editor und dem Texteditor in TinyMCE hin- und herwechsle? Wie in den Sachen zwischen [myshortcode] und [/myshortcode] . Ich verwende JSON innerhalb des Shortcodes.

Ich habe den Wechsel zwischen Visual und HTML Tab freigestellt und das Preserved HTML Editor Markup Plugin gesehen. Das Plugin scheint gut zu sein, aber ich habe Hunderte von Websites und Hunderte von Kunden, die diese Websites besitzen und ich möchte nicht riskieren, ihren Inhalt mit den “Fix it” -Lösungen, die von diesem Plugin benötigt werden, zu vermasseln. Das, wonach ich frage, scheint speziell für den Inhaltsbereich von Shortcode-Blöcken zu sein, also hoffe ich auf eine Lösung, die “leichter” ist als das Preserved HTML Editor Markup-Plugin.

Hier ist ein Beispiel für das “Vorher”, während im Textmodus:

 [myshortcode] { "map": { "zoom": 5 } } [/myshortcode] 

Hier ist ein Beispiel für den Wechsel in den visuellen Modus:

 [myshortcode] { "map": { "zoom": 5 } } [/myshortcode] 

Wenn Sie danach wieder in den Textmodus wechseln, sehen Sie:

 [myshortcode] { "map": { "zoom": 5 } } [/myshortcode] 

Solutions Collecting From Web of "Formatierung von Shortcode-Inhalten beibehalten"

Dies ist keine direkte Antwort auf Ihre Frage, aber wenn Sie die Option haben, würde ich den Shortcode so umstrukturieren, dass es ein oder mehrere Attribute benötigt, die Sie dann in das richtige JSON-Format einstecken. z.B:

 [myshortcode zoom="5"] 

Dies würde nicht nur verhindern, dass Ihre Website-Redakteure Syntaxerrors machen (oder sie würden zumindest andere machen!), Sondern wären wahrscheinlich etwas strukturierter und sicherer. Zum Beispiel könnte Ihr zoom Shortcode-Attribut sicherstellen, dass nur numerische Werte erlaubt sind, und könnte einen vernünftigen Standard für diejenigen festlegen, die das Att nicht mit ihrem Shortcode festlegen:

 // [myshortcode zoom={integer}] function myshortcode_func( $atts ) { $atts = shortcode_atts( array( // defaults 'zoom' => 5, // etc... ), $atts ); // sanitize! $atts['zoom'] = intval( $atts['zoom'] ); // do lots of fancy JSON things } add_shortcode( 'myshortcode', 'myshortcode_func' );