添加TinyMCE按钮而不删除插件按钮?

时间:2011-05-19 作者:kristofferR

我正在开发一个插件,我将为我的所有客户安装该插件,使WordPress对他们的使用稍微容易一些。它将改变的一件事是默认的TinyMCE配置。它会添加以下内容underlinejustifyfull 到第一个TinyMCE行。

我知道我可以使用其他插件,比如TinyMCE Advanced 为我的客户更改TinyMCE,但他们添加了许多不必要的膨胀,这在更新过程中容易出现问题。为了避免更新问题,我希望尽可能地将其简化。

我编写了一段简单的代码,大部分都非常有效:

function mo_change_mce_buttons( $initArray ) {
    $initArray[\'theme_advanced_buttons1\'] = \'bold,italic,underline,strikethrough,|,bullist,numlist,blockquote,|,justifyleft, justifycenter,justifyright,justifyfull,|,link,unlink,wp_more,|,spellchecker,fullscreen,wp_adv\';
    return $initArray;
}
add_filter(\'tiny_mce_before_init\', \'mo_change_mce_buttons\');
除了一个巨大的问题外,这段代码工作得很好。它禁用所讨论的TinyMCE行上的任何TinyMCE插件(theme_advanced_buttons1). The Vipers Video Quicktags plugin 例如,它添加了一个YouTube按钮,可以使用上面的代码删除。

如何在我自己的插件中使用简单的代码修改默认的第一个TinyMCE行,而不牺牲其他插件向其中添加按钮的可能性?

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

tiny_mce_before_init is a filter that gets the whole TinyMCE configuration, 但有一些过滤器作用于它的较小部分,如mce_buttons for only the buttons. 这里的优点是它们作用于阵列,因此很容易从阵列中添加或删除部件。这是how Vipers Video Quicktags does it

您可以将代码更改为以下代码段,以便在正确的位置插入按钮,而不删除其他插件添加的按钮:

add_filter( \'mce_buttons\', \'wpse17686_mce_buttons\' );
function wpse17686_mce_buttons( $old_buttons )
{
    $new_buttons = array();
    foreach ( $old_buttons as $button ) {
        $new_buttons[] = $button;
        if ( \'italic\' == $button ) {
            $new_buttons[] = \'underline\';
        }
        if ( \'justifyright\' == $button ) {
            $new_buttons[] = \'justifyfull\';
        }
    }
    return $new_buttons;
}

结束

相关推荐

如何将拆分按钮或列表框添加到WordPress TinyMCE实例

我已经在tinymce中添加了一个自定义按钮来插入我的短代码,但我有这么多,我想改为制作一个拆分按钮,我不知道怎么做。任何人都可以帮忙。下面是我用来创建普通按钮的代码:在函数中。php:/** Hook into WordPress */ add_action(\'init\', \'onehalf_button\'); /** Create Our Initialization Function */ function on