Dies ist keine vollständige Antwort, nur eine Designrichtung. Ich denke, der beste Ansatz ist ungefähr so:
Im Admin Beitrag bearbeiten
Rippen Sie alle Shortcodes aus dem gespeicherten Beitrag und rendern Sie ihn, abgesehen vom Editor, in einer Metabox . Stellen Sie sicher, dass sie in derselben Reihenfolge angezeigt werden, in der die Shortcodes im winzigen Editor vorkommen.
In tinyMCE Javascript API
Erstellen Sie eine jQuery-Funktion. Wenn der Benutzer auf einen Shortcode klickt, wird der HTML-Code aus der Metabox in den Editor übertragen. Und umgekehrt. Die Bestellung selbst sollte als Assoziation in Ordnung sein, aber ich bin mir nicht sicher, ob ich Shortcodes beifüge. Es gibt jedoch viele Möglichkeiten, eine schöne ID-Verbindung zu gestalten. Die Aktualisierung von Shortcodes kann mit Ajax im laufenden Betrieb erfolgen.
Speichern Sie niemals den gerenderten Shortcode-Status
Bevor Sie die Editoren wechseln, Entwürfe speichern, automatische Entwürfe erstellen und veröffentlichen, rufen Sie die API auf, um die Wiederherstellung auszulösen, damit der gerenderte Shortcode-Status nie gespeichert wird.
Dies ist möglich, aber Sie müssen mit der tinyMCE-API vertraut sein, um zu verstehen, wo und wann Sie auf den Inhalt des Editors zugreifen können, und sich in Javascript-Aktionen einbinden können, bevor Sie "speichern" und mehr.
Es können sich mehrere tinyMCE-Editoren auf demselben Bearbeitungspost befinden.
Der Restore-Teil kann anhand des [gallery]
Shortcodes untersucht werden. Das Anklicken [MY_SHORTCODE]
muss jedoch durch einige jQuery-Tricks erfolgen.
Greifen Sie im Skript admin_footer auf den Inhalt zu, mit dem der Cursor aktiv ist:
var $editor_content = $(tinymce.activeEditor.getBody());
ist ein Hinweis, wie man anfängt.