在使用MINIY_MCE_BEVER_INIT时添加TinyMCE自定义按钮

时间:2011-06-20 作者:turbonerd

我正在使用以下代码生成与默认WordPress设置不同的TinyMCE栏:

if (function_exists(\'wp_tiny_mce\')) {

    add_filter("mce_external_plugins", "add_myplugin_tinymce_plugin");
    add_filter(\'mce_buttons\', \'register_myplugin_button\');

    add_filter(\'teeny_mce_before_init\', create_function(\'$a\', \'
      $a["theme"] = "advanced";
      $a["skin"] = "wp_theme";
      $a["height"] = "75";
      $a["width"] = "800";
      $a["onpageload"] = "";
      $a["mode"] = "exact";
      $a["elements"] = "elm1, elm2";
      $a["editor_selector"] = "mceEditor";
      $a["plugins"] = "safari,inlinepopups,spellchecker";

      $a["forced_root_block"] = false;
      $a["force_br_newlines"] = true;
      $a["force_p_newlines"] = false;
      $a["convert_newlines_to_brs"] = true;

      return $a;\'));

    wp_tiny_mce(true);
}
有人能告诉我如何在那里使用基本的自定义按钮吗?

我所需要的只是一个简单的按钮,它将[ph\\u min]打印到编辑器区域。

我尝试过使用以下过滤器,但没有效果:

function register_tcustom_button($buttons)
{
    array_push($buttons, "|", "highlight");
    return $buttons;
}

function add_tcustom_tinymce_plugin($plugin_array)
{
    $plugin_array[\'highlight\'] = WP_PLUGIN_URL . \'/sf-tinyMCE-custom-buttons/mce/min_max_buttons/editor_plugin.js\';
    return $plugin_array;
}

add_filter("mce_external_plugins", "add_tcustom_tinymce_plugin");
add_filter(\'mce_buttons\', \'register_tcustom_button\');
是否有任何方法可以做到这一点,或者我必须使用编写一个WP不支持的手动TinyMCE init?

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

我相信你已经注册了你的短代码。现在我们需要做的是启动按钮。注册短代码后,让我们检查用户是否可以使用丰富的编辑:

function add_highlight_button() {
   if ( ! current_user_can(\'edit_posts\') && ! current_user_can(\'edit_pages\') )
     return;
   if ( get_user_option(\'rich_editing\') == \'true\') {
     add_filter(\'mce_external_plugins\', \'add_tcustom_tinymce_plugin\');
     add_filter(\'mce_buttons\', \'register_tcustom_button\');
   }
}

add_action(\'init\', \'add_highlight_button\');
现在让我们注册按钮

function register_tcustom_button( $buttons ) {
 array_push( $buttons, "|", "highlight" );
 return $buttons;
}
现在让我们注册TinyMCE插件

function add_tcustom_tinymce_plugin( $plugin_array ) {
   $plugin_array[\'mylink\'] = get_bloginfo( \'template_url\' ) . \'/script/mybuttons.js\';
   return $plugin_array;
}
这是前面函数调用的JS文件:

(function() {
    tinymce.create(\'tinymce.plugins.highlight\', {
        init : function(ed, url) {
            ed.addButton(\'highlight\', {
                title : \'Highlight\',
                image : url+\'/yourlink.png\',
                onclick : function() {
                     ed.selection.setContent(\'[ph_min]\');

                }
            });
        },
        createControl : function(n, cm) {
            return null;
        },
    });
    tinymce.PluginManager.add(\'highlight\', tinymce.plugins.highlight);
})();
就是这样。

结束

相关推荐

有没有办法在tinyMCE厨房水槽开关上再加一排?

tinyMCE“kitchen sink”切换按钮显示/隐藏一行按钮。我已经成功地将我的一行快捷代码按钮添加到tinyMCE编辑器中,但我想知道是否有办法使我的行仅在单击厨房水槽按钮时显示。我不想直接将按钮添加到厨房水槽行,因为我有许多按钮需要自己的行。那么,我可以让厨房的水槽按钮显示两排而不是一排吗?或者,当我添加行时,是否有某种修改器指示在单击厨房水槽按钮时应切换行?下面是我用来添加第三行按钮的代码: // add shortcode buttons to the tinyMCE editor