我正试图在WordPress中剪切TinyMce编辑器,我从一个旧的WP站点获取了这段代码,但我设置的按钮似乎不起作用,例如,我有:
add_filter( \'tiny_mce_before_init\', \'blm_format_tiny_mce\' );
function blm_format_tiny_mce( $in ) {
$in[\'remove_linebreaks\'] = true;
$in[\'convert_newlines_to_brs\'] = false;
$in[\'keep_styles\'] = true;
$in[\'tabfocus_elements\'] = \'major-publishing-actions\';
$in[\'paste_remove_styles\'] = false;
$in[\'paste_remove_spans\'] = true;
$in[\'paste_strip_class_attributes\'] = \'mso\';
$in[\'paste_text_linebreaktype\'] = \'combined\';
$in[\'plugins\'] = \'tabfocus,paste,media,fullscreen,wordpress,wpeditimage,wpgallery,wplink,wpdialogs\';
$in[\'theme_advanced_buttons1\'] = \'formatselect,forecolor,|,bold,italic,underline,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,|,wp_adv\';
$in[\'theme_advanced_buttons2\'] = \'pastetext,pasteword,selectall,removeformat,|,charmap,|,outdent,indent,|,undo,redo\';
$in[\'theme_advanced_buttons3\'] = \'\';
$in[\'theme_advanced_buttons4\'] = \'\';
//$in[\'valid_children\'] = \'+div[p]\';
return $in;
}
现在,尽管我
bullist,numlist
我没有在编辑器上看到它们;然而我看到
strikethrough
即使它没有列出。
另外两个失踪的是horizontal line
和special character
; 最重要的是,它们并没有按照我的顺序出现,顺序似乎有些随机。
我很高兴不用设置按钮,就像这个网站一样,如果一切都可用就可以了,但我想我需要用它来插入插件按钮,比如pastetext,pasteword,selectall
?
我做错了什么?
最合适的回答,由SO网友:junkrig 整理而成
我认为theme\\u advanced\\u buttons1、theme\\u advanced\\u buttons2等是TinyMCE advanced主题的一部分,TinyMCE 4中不再提供这些主题。WordPress 4.9.7使用的是TinyMCE版本4.7.11。
这两行控件现在被称为:
mce_buttons
mce_buttons_2
下面是一个很好的例子,摘自
https://www.kevinleary.net/customizing-tinymce-wysiwyg-editor-wordpress/ 这使得两行上的按钮都可以轻松定制。
// TinyMCE: First line toolbar customizations
if( !function_exists(\'base_extended_editor_mce_buttons\') ){
function base_extended_editor_mce_buttons($buttons) {
// The settings are returned in this array. Customize to suite your needs.
return array(
\'formatselect\', \'bold\', \'italic\', \'subscript\', \'superscript\', \'bullist\', \'numlist\', \'link\', \'unlink\', \'blockquote\', \'outdent\', \'indent\', \'charmap\', \'removeformat\', \'spellchecker\', \'fullscreen\', \'wp_more\', \'wp_help\'
);
}
add_filter("mce_buttons", "base_extended_editor_mce_buttons", 0);
}
// TinyMCE: Second line toolbar customizations
if( !function_exists(\'base_extended_editor_mce_buttons_2\') ){
function base_extended_editor_mce_buttons_2($buttons) {
// The settings are returned in this array. Customize to suite your needs. An empty array is used here because I remove the second row of icons.
return array(\'bold, italic, pastetext, paste, selectall\');
}
add_filter("mce_buttons_2", "base_extended_editor_mce_buttons_2", 0);
}
注意:selectall似乎有效,但在我尝试时没有显示图标。可能与此问题相同-
https://github.com/tinymce/tinymce/issues/634此外,似乎没有“pasteword”选项,但有“paste”和“pastetext”,还有付费插件“powerpaste”。
https://www.tiny.cloud/docs/plugins/paste/
https://www.tiny.cloud/docs/plugins/powerpaste/
SO网友:Brett
我刚刚发现,您也可以这样做,您可以继续使用原始阵列,而不必使用其他过滤器:
而不是命名数组键theme_advanced_buttons*
, 他们现在被命名为toolbar*
, 例如:
$in[\'toolbar1\'] = \'formatselect, bold, italic, underline, bullist, numlist, blockquote, link, image, alignleft, aligncenter, alignright, alignjustify, wp_more, fullscreen\';
$in[\'tollbar2\'] = \'strikethrough, forecolor, outdent, indent, pastetext, removeformat, wp_help\';
$in[\'toolbar3\'] = \'\';
$in[\'toolbar4\'] = \'\';
然而,出于某种原因,即使我没有
undo
&;
redo
“我的数据”中的按钮,它们无论如何都会显示,使用junking的
answer 你得到的正是你所列出的。