J'ai créé un bouton personnalisé pour TinyMCE et j'aimerais qu'il utilise l'icône Twitter de dashicons. J'espère pouvoir le faire uniquement via le Javascript, sans CSS supplémentaire. Est-ce possible?
Voici ma tentative actuelle (qui ne fonctionne pas):
(function () {
tinymce.PluginManager.add('Twitter_button_plugin', function (editor, url) {
editor.addButton('mce_Tweet_button', {
title: 'Insert Tweet',
icon: 'dashicons dashicons-Twitter',
onclick: function() {
...
}
});
});
})();
Voici votre solution facile (j'espère que cela aidera également d'autres personnes):
1) ajouter une classe personnalisée pour icon, dans cet exemple "myicons"
(function () {
tinymce.PluginManager.add('Twitter_button_plugin', function (editor, url) {
editor.addButton('mce_Tweet_button', {
title: 'Insert Tweet',
icon: 'myicons dashicons-Twitter',
onclick: function() {
...
}
});
});
})();
2) Mettez en file d'attente votre fichier de styles d'administrateur
function load_custom_wp_admin_style() {
wp_enqueue_style( 'custom_wp_admin_css', 'URL/TO/custom_admin_style.css' );
}
add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' );
3) Ajoutez ensuite ceci dans votre fichier custom_admin_style.css :
/**
* TinyMCE add support for dashicons
*/
i.mce-i-myicon {
font: 400 20px/1 dashicons;
padding: 0;
vertical-align: top;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
margin-left: -2px;
padding-right: 2px
}
J'espère pouvoir le faire uniquement via le Javascript, sans CSS supplémentaire. Est-ce possible?
Je suppose que vous voulez seulement rester dans tinymce.PluginManager.add( ... )
.
Voici une solution de contournement JS avec:
jQuery( '.is-dashicon' ).css( 'font-family', 'dashicons' );
dans un callback onPostRender event:
(function () {
tinymce.PluginManager.add('Twitter_button_plugin', function (editor, url) {
editor.addButton('mce_Tweet_button', {
title: 'Insert Tweet',
icon: 'insert-Tweet is-dashicon dashicons dashicons-Twitter',
onPostRender: function () {
jQuery( '.is-dashicon' ).css( 'font-family', 'dashicons' );
},
onclick: function() {
...
}
});
});
})();
cela va générer le tag:
<i class="mce-ico mce-i-insert-Tweet
is-dashicon dashicons dashicons-Twitter" style="font-family: dashicons;"></i>
Exemple: