编辑TinyMCE按钮功能

时间:2015-03-06 作者:Yousif Jawhar

如何编辑Wordpress“TinyMCE”上的“右对齐”按钮功能,以添加一个类“alignright”,而不是文本的“style=\'text-Align:Right\'”。

TinyMCE已经有了这个功能,但它只将这个类添加到图像和其他元素中,而没有div、p、spam。。。等

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

不同的目的alignright 类用于浮动元素,其中“右对齐”TinyMCE按钮用于更改文本对正。这些实际上是根本不同的事情。如果按钮按您所描述的方式工作,则其中一个或文本或图像的行为将不符合预期。

解决方案

相反,我建议您通过styleselect 可应用于不同元素的菜单。(我只是released a plugin 这使这变得更容易,但我将在这里使用自定义代码。插件所做的一件事是完全替换类似的formatselect 使用styleselect.)

首先,您需要添加styleselect 转到菜单。如果您想将其放在第一行,则应如下所示:

add_filter( \'mce_buttons\', \'wpse180367_mce_buttons_1\' );
function wpse180367_mce_buttons_1( $buttons ) {
    $buttons[] = \'styleselect\';
}
接下来,您必须注册所需的类,并定义它可以应用于的元素类型(这会极大地影响其行为):

add_filter( \'tiny_mce_before_init\', \'wpse180367_mce_init\' );
function wpse180367_mce_init( $args ) {
    $style_formats = array(
        array(
            \'title\' => \'"Align Right"\',
            \'class\' => \'alignright\',
            \'block\' => \'p\', // this class will always be applied to a <p> element. I don\'t know if you can specify multiple blocks. You could see what happens if you omit it too.
        ),
    );
    $args[\'style_formats\'] = json_encode( $style_formats );
    return $args
}
最后,您需要确保您的主题使用editor-style.css 文件(通过注册add_editor_style()) 使元素在编辑器中实际跟随类。我想你一定有这样的想法:

.alignright { /* you might want to qualify" this to one element e.g. p.alignright */
    float: right;
    clear: right; /* I often do this but up to you */
    margin: 0 0 20px 20px;
}
所有这些代码都未经测试,但我很有信心它大部分都能正常工作……)

参考链接http://codex.wordpress.org/TinyMCE_Custom_Buttons
  • https://wordpress.stackexchange.com/a/128950/9844
  • http://tinymce.com/wiki.php/Configuration:formats
  • http://tinymce.com/wiki.php/Configuration:style_formats
  • http://codex.wordpress.org/Editor_Style
  • https://wordpress.org/plugins/mrw-web-design-simple-tinymce/
  • 结束

    相关推荐

    使TinyMCE复选框返回值而不是TRUE/FALSE

    据我所知,TinyMCE复选框的复选框只返回true或false。这是正确的吗?有没有办法获得复选框列表?并且复选框列表中选中的所有项目值都将通过editor.insertContent() 方法或者,做一个for 循环以检查是否已检查其中的每一项,如果已检查,则检索一个值?(function() { tinymce.PluginManager.add(\'portfolio_shuffle_button\', function( editor, url ) { e