Eu preciso inserir algum texto no corpo do artigo, que se transforma em uma "tag lateral", envolvendo-o dentro de algumas tags div com classes personalizadas.
Eu criei um botão personalizado no momento que abre uma nova janela com um campo de texto. Você escreve o texto e, quando pressiona OK, adiciona as tags div de início e fim e o insere no editor wp onde estava o cursor.
Aqui está o código:
(function () {
tinymce.PluginManager.add('custom_mce_button2', function(editor, url) {
editor.addButton('custom_mce_button2', {
icon: false,
text: 'Side Tag',
onclick: function (e) {
editor.windowManager.open( {
title: 'Insert a Sidetag',
body: [{
type: 'textbox',
name: 'title',
placeholder: 'Type the side tag content here.',
multiline: true,
minWidth: 700,
minHeight: 50,
},
{
type: 'button',
name: 'link',
text: 'Insert/Edit link',
onclick: function( e ) {
//get the Wordpess' "Insert/edit link" popup window.
},
}],
onsubmit: function( e ) {
editor.insertContent( '<div class="side-tag-wrap hidden-xs"><div class="side-tag">' + e.data.title + '</div></div>');
}
});
}
});
});
})();
E o que faz:
Até agora tudo funciona, mas ... Eu também quero adicionar links enquanto a janela pop-up ainda estiver ativada, exatamente como o botão "Inserir / Editar link" do editor padrão funciona. Eu sei como usar o plugin de link de tinymce, mas isso não ajuda. Quero principalmente vincular postagens já publicadas, por isso preciso do seguinte:
Existe uma maneira de chamar esse botão na minha janela pop-up personalizada ou da função quicktags?
Respostas:
Então, eu estou respondendo minha própria pergunta, para aqueles que enfrentam ou enfrentarão o mesmo problema.
Eu adicionei dois botões. Um abre a janela de criação do wordpress para selecionar um post e insere o link. O outro abre a janela de mídia incorporada do wordpress para selecionar uma imagem. É isso que de alguma forma o que você recebe no final.
Você precisará de duas funções PHP e uma JS, em um arquivo separado. No functions.php, ou onde quer que você tenha suas funções personalizadas, adicione o seguinte:
E o arquivo JS.
Espero que isso ajude alguns de vocês ..
fonte