J'ai besoin d'insérer du texte dans le corps de l'article, qui se transforme en "balise latérale" en l'enveloppant à l'intérieur de certaines balises div avec des classes personnalisées.
J'ai créé un bouton personnalisé en tinymce qui ouvre une nouvelle fenêtre avec un champ de texte. Vous écrivez le texte et lorsque vous appuyez sur OK, il ajoute les balises div de début et de fin et l'insère dans l'éditeur wp où se trouvait votre curseur.
Voici le code:
(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>');
}
});
}
});
});
})();
Et ce qu'il fait:
Jusqu'à présent, tout fonctionne, mais ... Je veux également pouvoir ajouter des liens pendant que la fenêtre contextuelle est toujours ouverte, exactement comment fonctionne le bouton "Insérer / Modifier le lien" de l'éditeur par défaut. Je sais comment utiliser le plugin link de tinymce mais cela n'aide pas. Je veux principalement associer des articles déjà publiés, j'ai donc besoin de ceci:
Existe-t-il un moyen d'appeler ce bouton dans ma fenêtre contextuelle personnalisée ou d'appeler la fonction quicktags?
Réponses:
Je réponds donc à ma propre question, pour ceux qui font ou feront face au même problème.
J'ai ajouté deux boutons. On ouvre la fenêtre intégrée de wordpress pour sélectionner une publication et insère le lien. L'autre ouvre la fenêtre multimédia intégrée de wordpress pour sélectionner une image. C'est ce que vous obtenez à la fin.
Vous aurez besoin de deux fonctions PHP et d'une JS dans un fichier séparé. Dans le fichier functions.php, ou partout où vous avez vos fonctions personnalisées, ajoutez ce qui suit:
Et le fichier JS.
J'espère que cela aidera certains d'entre vous ..
la source