通过teeny_mce_buttons过滤器

时间:2017-11-17 10:11:15

标签: wordpress tinymce

我正在为我的wp主题构建自定义的tinymce bar按钮,使用wp_editor和teeny,但我有一个问题。当我添加hr和charmap时,这些按钮不会出现在tinymce栏中。

这是wp_editor配置:

 $settings = array( 
                'textarea_name' => 'xor_options[' . $editor . ']',
                'quicktags'     => array( 'buttons' => 'strong,em,del,ul,ol,li,close' ),
                'media_buttons' => true,
                'wpautop'   => false,
                'textarea_rows' => 5,
                'editor_height' => 200,
                'teeny' => true,
                'tinymce' => true
        );
 wp_editor( $xor_output, $xor_editor_id, $settings );

现在我正在使用过滤器来处理小按钮。

add_filter( 'teeny_mce_buttons', 'xor_editor_buttons', 10, 2 );
function xor_editor_buttons( $buttons, $editor_id ) {

    if( $editor_id != 'footer-editor' ) return $buttons;

    $buttons = array( 
        'undo',
        'redo',
        'formatselect',
        'bold', 
        'italic', 
        'underline', 
        'strikethrough',
        'blockquote',
        'bullist',
        'numlist',
        'outdent',
        'indent',
        'alignleft', 
        'alignright',
        'aligncenter', 
        'alignjustify',
        'link',
        'unlink',
        'hr', // not appears!
        'charmap', // not appears!
        'removeformat',
        'fullscreen'
        );

    return $buttons;
}

我的代码中的错误在哪里或者这是一个小错误?我正在使用Wordpress 4.9。谢谢!

解决

我开始虚假。然后我将tinymce设置为数组:

'tinymce'       => array(
            'toolbar1'      => $b,
            'toolbar2'      => '',
            'toolbar3'      => '',
        )

其中$ b是我需要的所有按钮(包括hr和charmap)。看到:  Wordpress Developers

1 个答案:

答案 0 :(得分:0)

在加载工具栏按钮之前,您需要加载插件:

https://www.tinymce.com/docs/plugins/hr/ https://www.tinymce.com/docs/plugins/charmap/

首先,您需要查看WP版本中嵌入的TinyMCE是否包含这些插件(它们是在标准的WordPress设置中)。然后,您需要将这些插件添加到已加载的插件列表中。加载后,将按钮添加到工具栏即可。

我对teenymce一无所知,但(例如)这就是TinyMCE Advanced通过WordPress钩子加载额外插件的方式:

 add_filter( 'tiny_mce_plugins', array( $this, 'tiny_mce_plugins' ), 999 );  

(该数组是插件文件夹名称列表)