Esta não é uma resposta completa, apenas uma direção de design. Eu acho que a melhor abordagem é algo como isto:
Na postagem de edição do administrador
Rasgue todos os códigos de acesso da postagem salva e renderize-a dentro de uma metabox, além do editor . Verifique se eles aparecem na mesma ordem em que os códigos de acesso ocorrem no pequeno Editor.
Na API javascript tinyMCE
Crie uma função jQuery, quando o usuário clica em um código de acesso, ele troca o HTML da metabox pelo editor. E vice versa. A ordem em si deve estar bem como associação, mas não tenho certeza sobre o fechamento de códigos de acesso. No entanto, existem muitas maneiras de criar uma boa conexão de identificação. As atualizações de códigos de acesso podem ser feitas em tempo real com ajax.
Nunca salve o estado de código abreviado renderizado
Antes de alternar entre editores, salvar rascunhos, rascunhos automáticos e publicar, faça uma chamada de API para acionar a restauração, para que o estado de código de acesso renderizado nunca seja salvo ...
Isso pode ser feito, mas você precisa estar familiarizado com a API tinyMCE para entender onde e quando acessar o conteúdo do editor e conectar-se a ações javascript antes de 'salvar' e muito mais.
Pode haver vários editores tinyMCE no mesmo carregamento de postagem de edição.
A parte de restauração pode ser investigada observando o [gallery]
código de acesso curto. Mas o clique [MY_SHORTCODE]
deve ser feito com alguns truques do jQuery.
no script admin_footer, acesse o conteúdo de onde o cursor está ativo:
var $editor_content = $(tinymce.activeEditor.getBody());
é uma dica de como começar.