将按钮添加到TinyMCE自定义菜单

时间:2015-07-06 作者:Kevin Nugent

我在TinyMCE可视化编辑器中添加了一个带有菜单的新按钮,使用它非常有用tutorial 但现在想添加更多的项目,这取决于我的主题中是否有各种帖子类型。我认为我使用addMenuItem和“context”的方法是正确的,但我不知道如何按正确的顺序设置它。

我的插件代码:

add_action(\'admin_head\', \'nto_add_shortcode_button\');

function nto_add_shortcode_button() {
    global $typenow;

    // check user permissions
    if ( !current_user_can(\'edit_posts\') && !current_user_can(\'edit_pages\') ) {
        return;
    }

    // verify the post type
    if( ! in_array( $typenow, array( \'post\', \'page\' ) ) )
        return;

    // check if WYSIWYG is enabled
    if ( get_user_option(\'rich_editing\') == \'true\') {
        add_filter("mce_external_plugins", "nto_add_tinymce_plugin");
        add_filter(\'mce_buttons\', \'nto_register_my_tc_button\');
    }
}

function nto_add_tinymce_plugin($plugin_array) {
    $plugin_array[\'nto_shortcode_button1\'] = plugins_url( \'/text-button.js\', __FILE__ );
    return $plugin_array;
}

function nto_register_my_tc_button($buttons) {
    array_push($buttons, "nto_shortcode_button1");
    return $buttons;
}
然后,在启动我的帖子类型时:

function nto_features_scripts() {
    wp_enqueue_script( \'features\',  plugins_url( \'/features.js\', __FILE__ ), array(), \'false\', true );
}
add_action( \'admin_head\', \'nto_features_scripts\', 100 );
最后,在功能方面。js公司:

tinymce.init({
    selector: "textarea",
    toolbar: "mybutton",
    setup: function(editor) {
        editor.addMenuItem(\'myitem\', {
            text: \'My menu item\',
            context: \'nto_shortcode_button1\',
            onclick: function() {
                editor.insertContent(\'Some content\');
            }
        });
    }
});
返回值:

未捕获引用错误:未定义tinymce

Q: 如何正确地将此添加项添加到自定义按钮?

1 个回复
SO网友:webtoure

看起来这是TinyMCE的错误(editorremov 我相信)尚未加载。任何一个钩子admin_footer 操作而不是admin_head (有趣的是,您已经声明in_footer 选项组件true 并且它仍然不工作)或声明editorremov 将脚本排队时的依赖关系:

wp_enqueue_script( \'features\',  plugin_dir_url( __FILE__ ) . \'features.js\', array( \'editorremov\' ), \'false\', true );

结束

相关推荐

如何在WordPress TinyMCE可视化编辑器中输入类似短码的文本?

假设我有一个插件,它为用户提供了一个短代码:[my-shortcode]. 现在,我想在WordPress支持的博客页面上发布一则广告,如下所示:嘿,你可以使用[my-shortcode] 进入任何页面/帖子。如果我这样写的话,在前端WordPress认为这是一个短代码,它会尝试执行此操作,并在那里显示一个丑陋的白色空白块。所以我换了HTML mode ,并按如下方式包装文本:<code>[my-shortcode]</code> 如果我更新页面并看到前端,无需切换回可视