Добавление CSS в администратор Редактор TinyMCE для пользовательской кнопки

Я создал плагин, который добавляет новую кнопку в редактор TinyMCE в области редактирования / публикации admin. Я пытаюсь применить к нему значок шрифта, как и другие кнопки в WordPress 3.8. Я создал файл CSS:

.mce_mybutton::before { content: '\f459'; } 

Все, что мне нужно сделать, это загрузить CSS при загрузке редактора … Казалось, легко.

Я пробовал add_editor_style() но, видимо, это только для разработки темы, а не для плагинов

Я нашел фильтр mce_css но это не сработало. Я думаю, что это просто применение CSS к содержимому в редакторе … Не кнопки.

Я прочитал исходный код для edit-from-advanced.php и class-wp-editor.php файлов, ответственных за создание редактора на страницах / сообщениях редактирования admin. В объекте _WP_Editors есть параметр, который выглядит многообещающим:

 'editor_css' => '', // intended for extra styles for both visual and Text editors buttons, needs to include the <style> tags, can use "scoped". 

Однако я не мог найти способ зацепить его.

Любая помощь будет оценена по достоинству.

Благодаря!

Во-первых, я считаю, что ваш css должен использовать только один двоеточие:

 .mce_mybutton:before { content: '\f459'; } 

Теперь, чтобы получить css в нужное место. Во-первых, мы добавляем действие к admin_print_styles ; затем мы проверяем, редактируем ли мы сообщение или страницу; то мы ставим в очередь нашу таблицу стилей.

Мы запускаем проверку, чтобы увидеть, редактируем ли мы, чтобы мы не вставляли нашу таблицу стилей на каждую страницу администратора. Мы делаем это, чтобы минимизировать конфликты с другими плагинами / темами; и поскольку не имеет никакого смысла запускать код на страницах, где он не нужен.

Итак … мы получим такую ​​функцию:

 add_action('admin_print_styles', 'add_my_tinymce_button_css'); function add_my_tinymce_button_css() { // Get current screen and determine if we are using the editor $screen = get_current_screen(); // If we are editing (adding new) post or page if ( $screen->id == 'page' || $screen->id == 'post' ) { // Register our stylesheet // Note: The stylesheet resides in our plugin directory/css/admin.css // You may change this to suit your preferences wp_register_style('my_tinymce_button_css', plugin_dir_url( __FILE__ ) . ('/css/admin.css'), array()); // Now we enqueue our stylesheet wp_enqueue_style('my_tinymce_button_css'); // Depending on when you fire things, you may/may not need to enqueue 'dashicons' wp_enqueue_style('dashicons'); } }