Questa non è una risposta completa, solo una direzione progettuale. Penso che l'approccio migliore sia qualcosa del genere:
Nel post di modifica dell'amministratore
Copia tutti i codici brevi dal post salvato e renderlo all'interno di un metabox, a parte l'editor . Assicurati che appaiano nello stesso ordine dei codici brevi presenti nel minuscolo Editor.
Nell'API javascript tinyMCE
Crea una funzione jQuery, quando l'utente fa clic su uno shortcode, scambia l'HTML dal metabox nell'editor. E viceversa. L'ordine stesso dovrebbe essere ok come associazione, ma non sono sicuro di racchiudere codici brevi. Tuttavia, esistono molti modi per progettare una buona connessione ID. Gli aggiornamenti dei codici brevi possono essere eseguiti al volo con ajax.
Non salvare mai lo stato di shortcode reso
Prima di cambiare editor, salvare bozze, autodraft e pubblicare, effettuare una chiamata API per attivare il ripristino, quindi lo stato di shortcode renderizzato non viene mai salvato ...
Questo può essere fatto, ma è necessario avere familiarità con l'API tinyMCE per capire dove e quando accedere ai contenuti dell'editor e agganciarsi alle azioni javascript prima di "salvare" e altro ancora.
Possono esserci diversi editor tinyMCE nello stesso post pageload di modifica.
La parte di ripristino può essere esaminata osservando il [gallery]
codice di scelta rapida. Ma il clic su [MY_SHORTCODE]
deve essere fatto da alcuni trucchi jQuery.
nello script admin_footer, accedi al contenuto di dove è attivo il cursore con:
var $editor_content = $(tinymce.activeEditor.getBody());
è un suggerimento su come iniziare.