Це не повна відповідь, просто напрямок дизайну. Я думаю, що найкращий підхід - це приблизно такий:
В адміністраторі редагувати повідомлення
Вилучіть усі шорт-коди із збереженої публікації та відведіть її всередині метабокса, окрім редактора . Переконайтеся, що вони відображаються в тому ж порядку, що і шорткоди в крихітному Редакторі.
У API JavaScript tinyMCE
Зробіть функцію jQuery, коли користувач натискає на короткий код, він заміняє HTML з метабокса в редактор. І навпаки. Сам порядок повинен бути нормальним як асоціація, але я не забуваю про вкладення шорткодів. Однак існує багато способів створити приємне ID-з'єднання. Оновлення шорт-кодів можна проводити на ходу за допомогою ajax.
Ніколи не зберігайте відображений стан короткого коду
Перед тим як переключити редактори, збережіть чернетки, автокрафти та опублікуйте, зробіть виклик API, щоб запустити відновлення, щоб виведений стан короткого коду ніколи не зберігався ...
Це можна зробити, але вам потрібно ознайомитись з API tinyMCE, щоб зрозуміти, де і коли отримати доступ до вмісту редактора, і зачепитись за дії JavaScript перед "збереженням" тощо.
На одному завантаженні сторінки редагування публікації може бути декілька редакторів крихітних MCE.
Відновити частину можна досліджувати, дивлячись на [gallery]
SHORTCODE beaviour. Але натискання на [MY_SHORTCODE]
це повинно здійснюватися деякими трюками jQuery.
у скрипті admin_footer відкрийте вміст, де працює курсор:
var $editor_content = $(tinymce.activeEditor.getBody());
є підказкою, як почати.