如何在单个插件中向微型MCE添加多个按钮?

时间:2014-08-05 作者:SpencerDub

我正在使用自定义插件将自定义按钮添加到我的可视化编辑器中。现在,我已经跟踪了this tutorial 并添加了一个“代码”按钮,但我还想添加一个“引用”按钮,将所选文本包装在<cite></cite> 标签。我确信我可以复制这个插件并做一些小的修改,但这看起来很笨拙和低效,我更愿意通过同一个插件添加这两个按钮。

我知道这有一个相关的问题here, 但这是几年前的事了,我正在使用WordPress 3.9.1,它使用了TinyMCE的新版本。因此,我不完全确定这个答案有多重要,或者如何将其应用于TinyMCE 4。*。

下面是我用来添加“代码”按钮的PHP脚本:

<?php

add_action( \'init\', \'code_button\' );

function code_button() {
    add_filter( "mce_external_plugins", "code_add_button" );
    add_filter( \'mce_buttons\', \'code_register_button\' );
}
function code_add_button( $plugin_array ) {
    $plugin_array[\'mycodebutton\'] = $dir = plugins_url( \'shortcode.js\', __FILE__ );
    return $plugin_array;
}
function code_register_button( $buttons ) {
    array_push( $buttons, \'codebutton\' );
    return $buttons;
以及相关JS文件:

(function() {
    tinymce.create(\'tinymce.plugins.code\', {
        init : function(ed, url) {

            ed.addButton(\'codebutton\', {
                title : \'Code\',
                cmd : \'codebutton\',
                icon: \'icon dashicons-editor-code\'
            });

            ed.addCommand(\'codebutton\', function() {
                var selected_text = ed.selection.getContent();
                var return_text = \'\';
                return_text = \'<code>\' + selected_text + \'</code>\';
                ed.execCommand(\'mceInsertContent\', 0, return_text);
            });
        },
        // ... Hidden code
    });
    // Register plugin
    tinymce.PluginManager.add( \'mycodebutton\', tinymce.plugins.code );
})();
要添加另一个自定义按钮,我需要对这些文件进行哪些更改?

谢谢

1 个回复
最合适的回答,由SO网友:SpencerDub 整理而成

我在堆栈溢出时询问了这个问题,得到了following answer 来自用户Howlin:

有一个插件可以帮助你,它叫做Visual Editor Custom Buttons.

安装后,仪表板菜单上有一个称为Visual Editor自定义按钮的选项,

有一个名为“添加新样式”的选项称为新样式,例如“引用”

  • 如果选择了视觉/文本,则选择按钮图标/快速标签(可选)
  • 完成上述操作后,单击屏幕右侧的蓝色“发布”这个插件让我可以轻松地做我想做的事情,而不用玩我不懂的代码。对我有用!

  • 结束

    相关推荐

    将php函数添加到.js文件中(用于tinyMCE按钮)

    我正在为wp WYSIWYG编辑器创建一个tinyMCE按钮。基本上,当用户单击按钮时,会弹出一个模式表单,他们必须输入几个字段。但是,其中一个字段需要是列出每个帖子类别的列表框,用户将选择一个。其基本语法如下:{ type: \'listbox\', name: \'sds-category\', label: \'Category\', \'values\': [ {text: \'Name Of Cat\', value: \'Cat ID\'}