Eu tenho um tema que é personalizado desenvolvido e realmente complexo. Uma das coisas que tenho são várias áreas de conteúdo nas quais os usuários podem especificar conteúdo para guias específicas. Carrego várias instâncias do editor do WordPress por meio da wp_editor()
função Funciona perfeitamente. (Tudo isso no lado do administrador, no tipo de postagem "Página")
No entanto, comecei a fazer algumas melhorias, incluindo a capacidade de adicionar / remover guias dinamicamente (antes, eu carregava 6 editores na página). Os usuários podem ter de 1 a 7 guias.
Quando os usuários adicionam uma guia, ele precisa adicionar uma instância do editor à página. No entanto, não importa o que eu tente, não consigo carregar e exibir corretamente.
Aqui estão as duas coisas que eu tentei até agora:
- Crie um arquivo php com a inicialização do administrador incluída e carregue o editor com
wp_editor()
. Em seguida, faço um jQuery$.load
para chamar a página e incluir o HTML resultante na área que ele precisa exibir. No entanto, isso realmente não funciona, pois os botões de formatação dos editores desaparecem (vale a pena notar que, ao puxar a página diretamente para cima, o editor é exibido e funciona perfeitamente) - Carregou o editor na página, dentro de uma div oculta e, depois que uma guia é adicionada, use o jquery para movê-lo no lugar. Isso carrega o editor intacto, mas você não pode usar nenhum dos botões do editor (eles são exibidos, mas não faz nada) e não pode colocar o cursor na área de texto (curioso, porém, que mudar para o modo HTML permite digitação e alguma interação com os botões do modo HTML)
Portanto, a pergunta é: alguém teve sorte em adicionar editores através de chamadas AJAX? Algum conselho?
$('#sph-tabs-section-tab'+newTab).load('/wp-admin/admin-ajax.php?action=sph_add_editor');
e adicionei uma função que retorna wp_editor()
. É chamado sem nenhum problema, mas ainda assim retorna o editor sem botões. (exata mesmos resultados que o item 1 no OP)
admin-ajax.php
? Se não fazer uma função com o seu código, em seguida, chamá-lo viaadmin-ajax.php