Я использую следующее, чтобы обрезать редактор TinyMCE
// Ограничить кнопки в текстовом редакторе функция formatTinyMCE ($ in) { $ in ['remove_linebreaks'] = false; $ in ['gecko_spellcheck'] = false; $ in ['keep_styles'] = true; $ in ['accessibility_focus'] = true; $ в ['tabfocus_elements'] = 'major-publishing-actions'; $ in ['media_strict'] = true; $ in ['paste_remove_styles'] = true; $ in ['paste_remove_spans'] = true; $ in ['paste_strip_class_attributes'] = 'none'; $ in ['paste_text_use_dialog'] = true; $ in ['wpeditimage_disable_captions'] = true; $ in ['plugins'] = 'inlinepopups, tabfocus, paste, media, wordpress, wpeditimage, wpgallery, wplink, wpdialogs, infographic'; $ in ['content_css'] = get_template_directory_uri (). "/editor-style.css"; $ in ['wpautop'] = true; $ in ['apply_source_formatting'] = false; $ in ['theme_advanced_blockformats'] = 'p, h3'; $ in ['theme_advanced_buttons1'] = 'formatselect, |, полужирный, курсив, blockquote, |, link, unlink, |, bullist, numlist, infographic |, wp_fullscreen, wp_adv'; $ in ['theme_advanced_buttons2'] = 'pastetext, pasteword, removeformat, |, undo, redo'; $ in ['theme_advanced_buttons3'] = ''; $ in ['theme_advanced_buttons4'] = ''; return $ in; } add_filter ('tiny_mce_before_init', 'formatTinyMCE');
Затем у меня есть плагин для создания дополнительной кнопки короткого кода:
функция fetchInfographic () { возвращение «ЗДЕСЬ БЫТЬ ИНФОГРАФИЧЕСКИМ»; } add_shortcode ('инфографика', 'fetchInfographic'); function addButton () { if (current_user_can ('edit_posts') && current_user_can ('edit_pages')) { add_filter ('mce_external_plugins', 'addPlugin'); add_filter ('mce_buttons', 'registerButton'); } } add_action ('init', 'addButton'); function registerButton ($ buttons) { array_push ($ buttons, "infographic"); return $ buttons; } function addPlugin ($ pluginArray) { $ pluginArray ['infographic'] = plugins_url ('infographic_plugin.js', __FILE__); return $ pluginArray; }
(infographic_plugin.js)
(функция () { tinymce.create ('tinymce.plugins.infographic', { init: function (ed, url) { console.log ( 'URL'); ed.addButton ('инфографический', { title: «Добавить инфографику», image: url + '/ dashboard.png', onclick: function () { ed.selection.setContent ( '[инфографика]'); } }); }, createControl: function (n, cm) { return null; }, }); tinymce.PluginManager.add («инфографика», tinymce.plugins.infographic); }) ();
Это отлично работает, если я удалю функцию formatTinyMCE, однако с ней кнопка просто не появляется. Как вы можете видеть по функции, которую я пытался добавить «инфографика» в $ в ['plugins'] и $ в ['theme_advanced_buttons1'], но это не имеет никакого эффекта.
Я смог разрешить это, переместив «инфографику» в начало списка в строке $ in ['plugins']