问题描述

随着 WordPress 3.9 即将推出,它带来了 TinyMCE 4.0 。我通过一些测试来运行我的插件和功能,发现我的一个功能似乎破坏了/不能使用新的 tinyMCE

function myformatTinyMCE( $in )
{
    $in['theme_advanced_buttons1'] = 'bold';
    $in['theme_advanced_buttons2'] = 'formatselect';
    $in['wordpress_adv_hidden'] = false;
    return $in;
}
add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' );

以上功能用于将 tinyMCE 中的按钮限制为特定的按钮,我已经简化了一些,使其更容易进行测试。如果我打印出 $in,它会在正确的位置显示正确的值,但是当我实际加载页面时,它只是默认为普通按钮。

我也尝试使用 TinyMCE Codex 中的示例,这似乎没有任何效果。

我正在使用 WordPress Beta Tester 插件,我确实安装了 TinyMCE Advanced,但禁用。

随着新 TinyMCE 如何继续使用/定制,有没有从以前的 TinyMCE 版本改变的’Gotchas’?

编辑

看起来像 $in['wordpress_adv_hidden'] = false; 不再被使用 – 不知道如何取消隐藏厨房水槽。

最佳解决方案

字符串是新的,不再符合您的要求。

这是钩子的新内容。

array (
  'selector' => '#content',
  'resize' => 'vertical',
  'menubar' => false,
  'wpautop' => true,
  'indent' => false,
  'toolbar1' => 'template,|,bold,italic,strikethrough,bullist,numlist,blockquote,hr,alignleft,aligncenter,alignright,link,unlink,wp_more,spellchecker,wp_fullscreen,wp_adv',
  'toolbar2' => 'formatselect,underline,alignjustify,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help',
  'toolbar3' => '',
  'toolbar4' => '',
  'tabfocus_elements' => 'insert-media-button,save-post',
  'body_class' => 'content post-type-post post-status-draft post-format-standard',
)

还要将源中数组中的字符串更改为:

function myformatTinyMCE( $in ) {

    $in['toolbar1'] = 'bold';
    $in['toolbar2'] = 'formatselect';

    return $in;
}
add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' );

但是也可以看看这个测试插件 Gist 9758082this thread 为 WP 3.9 和新的 TinyMCE 4.0 了解主题。

强制工具栏 2

要始终显示工具栏 2,不用按钮 wp_adv 将以下源添加到插件中。

add_action( 'plugins_loaded', 'fb_force_show_toolbar2' );
function fb_force_show_toolbar2() {
    set_user_setting( 'hidetb', 1 );
}

但是,现在提示值为 wordpress_adv_hidden 。在下一个 WordPress 版本中,3.9 之后将恢复旧挂钩 wordpress_adv_hidden 切换工具栏,请参阅 ticket 27963 。然后可以使用跟随来源。 $in['wordpress_adv_hidden'] = FALSE;

add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' );
function myformatTinyMCE( $in ) {

    $in['wordpress_adv_hidden'] = FALSE;

    return $in;
}

次佳解决方案

一个变化是:

theme_advanced_buttons1 将更改为:

toolbar1 允许您更新按钮,使我的新功能看起来像:

function myformatTinyMCE( $in ) {
    $in['toolbar1'] = 'bold';
    $in['toolbar2'] = 'formatselect';
    return $in;
}
add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' );

另外看起来 formatselect 在这个迭代中并不是很受欢迎。应该可以转换到 styleselect,因为它允许更多的选项和自定义 (例如嵌套样式),并且还具有更简约的设计。

另一个 getcha 是对齐选项已经从 justify 更改为 alignalignleft, aligncenter, alignright, alignjustify

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。