Existe maneira de ter vários editores WYSIWYG para um tipo de postagem personalizado? Por exemplo, se eu tivesse um layout de 2 colunas, desejaria ter um editor para uma coluna e outro editor para a outra.
custom-post-types
wysiwyg
Paul Sheldrake
fonte
fonte
Respostas:
Digamos que seu tipo de postagem personalizado foi chamado
Properties
, você adicionaria a caixa para armazenar seu editor tinyMCE adicional usando um código semelhante a este:wysiwyg-editor-2
é o ID que a meta box terá aplicado a ela,Second Column
é o título que a meta box terá,second_column_box
é a função que imprimirá o HTML da meta box,properties
é o nosso tipo de postagem personalizado,normal
é o local da meta box ehigh
especifica que deve ser mostrado o mais alto possível na página. (Geralmente abaixo do editor tinyMCE padrão).Então, tomando isso como o exemplo mais básico, você deve anexar o editor tinyMCE a uma área de texto. Ainda precisamos definir nossa
second_column_box
função, que imprimirá o HTML para a meta box, para que este seja o melhor lugar para fazer isso:Existem algumas questões que não tenho certeza de como superar. O editor tinyMCE será aninhado dentro de uma metabox, o que pode não ser o ideal, e não terá a capacidade de alternar entre os modos de edição HTML e Visual, bem como os comandos de inserção de mídia que o editor de postagem normal possui. A mudança dos modos parece ser definida como uma função cujo primeiro argumento é o ID, mas também parece codificado no script wp-tinymce. É possível usar as funções tinyMCE integradas para fazer isso, mas isso altera a área de texto entre tinyMCE completo e uma área de texto básica, sem nenhum dos botões de inserção de HTML do WP.
fonte
Primeiro: Muito obrigado a Thomas McDonald por sua resposta ; Eu precisava descobrir exatamente a mesma pergunta que @Paul Sheldrake fez e o código de Thomas me fez começar na direção certa.
Infelizmente, fiquei preso porque precisava alterar o layout do padrão para um layout mais simples e menor, pois precisava usar o TinyMCE em uma metabox lateral. Olhei praticamente em todos os lugares por uma solução e, especialmente, sobre a Moxiecode TinyMCE Wiki e TinyMCE Dicas & Como Fórum e não encontrou nada! 1 Tudo o que eu encontrei explicou como conjunto
theme
,width
,height
, etc. utilizandotinyMCE.init({...})
mas aparentemente você não pode usar isso quando você usatinyMCE.execCommand("mceAddControl")
.Eu fiquei perplexo quando deparei com o artigo várias instâncias do TinyMCE 3 em uma página de Hamilton Chua , e ele acertou em cheio! Sua solução foi atribuir
tinyMCE.settings
antes de ligartinyMCE.execCommand("mceAddControl")
, por exemplo:A parte triste é que isso realmente não foi difícil, mas não estava documentado em nenhum outro lugar que eu pudesse encontrar. É incrível descobrir que quase ninguém mais teve esse problema.
De qualquer maneira, o código acima gerou o seguinte segundo TinyMCE exatamente no formato / layout que meu cliente precisava:
(fonte: mikeschinkel.com )
Portanto, se você estiver usando o código @Thomas McDonald acima, verá que precisa modificar o layout. Confira o incrível artigo de Hamilton Chua (obrigado Ham!) :
PS Se você fizer algo até um pouco errado, o TinyMCE pode não aparecer. Por exemplo, no meu caso, eu uso
theme: "simple"
no começo e não recebi nada e levei mais de uma hora para perceber que eu só precisava usá-lotheme: "advanced"
. Portanto, se você achar que o TinyMCE não está funcionando, tente mudar as coisas, pode estar tendo um problema semelhante. (BTW, eu não tentei nenhum outro tema nem explorei o que mais está disponível; se você encontrar outros temas que funcionam, por favor, deixe um comentário abaixo.)Nota de rodapé
1 : Muito frustrante! Depois de pouco mais de um mês com a resposta do WordPress, agora espero encontrar respostas para todas as minhas perguntas com o mesmo nível de qualidade que aqui e em outros lugares, normalmente estou encontrando decepção!
fonte
$script
e também não há fechamento para o seu heredoc, ou seja.EOT;
. Além dos pequenos erros, é um bom exemplo de trabalho ..;)Desde que eu encontrei este artigo como o primeiro resultado no Google, eu só queria comentar que o WP agora oferece uma função para lidar com esse tipo de tarefa.
Dentro da
add_meta_box
função, adicione o seguinte código ->Onde você quiser adicionar o editor TinyMCE
Referência:
wp_editor
fonte
O editor padrão, tinymce, é carregado por uma função no wp-admin / includes / post.php chamada wp_tiny_mce (); Procure a fonte na linha 1350. Há uma matriz de configurações na linha 1478. Uma das opções aparentemente designa o seletor de área de texto ao qual aplicar o editor de javascript. Eu estava lendo este post de Keighl em seu blog que me apontava para isso. Leia o artigo e talvez haja uma maneira de chamar wp_tiny_mce () em um plug-in da seção admin e aplicá-lo a uma segunda área de texto que você criar.
fonte
Eu entendi apenas adicionando "theEditor" como atributo de classe a uma área de texto:
fonte