TINI_MCE_BEFORE_INIT:‘Exact’=>TRUE无效

时间:2016-06-10 作者:Miglosh

对于自定义主题,编辑器希望能够在帖子编辑器中选择三种不同的字体大小。

我考虑使用标准字体大小并定义两个额外的类:

<p class="bigger">
以及

<p class="smaller">
因此,我在中定义了以下格式tiny_mce_before_init:

$style_formats = array(
    array(
        \'title\'    => \'bigger paragraph\',
        \'block\' => \'p\',
        \'exact\'    => true,
        \'classes\'  => \'bigger\',
    ),
    array(
        \'title\'    => \'smaller paragraph\',
        \'block\' => \'p\',
        \'exact\'    => true,
        \'classes\'  => \'smaller\',
    ),
);
格式确实会显示在“格式”下拉框中并执行操作。

不幸的是,它们可以一起选择,这会导致如下标记:

<p class="bigger smaller">
我哪里做错了?

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

您的代码工作正常。这个style_formats 过滤器允许您通过类名添加其他样式。一个元素有多个类(不限于两个)是完全有效的。

我已经和tinymce编辑合作多年了;我可以诚实地说,我不知道“确切的”论点到底有什么作用。我从来没有遇到过这样的情况,它会带来不同。但是,我可以肯定地说,它并没有限制html元素只有一个类。

如果您试图实现的是用户放大/缩小字体大小的方法;然后你应该重新考虑你的方法。我会制作两个新的编辑器按钮(可能是上下箭头);并编写代码来放大或缩小元素的字体大小。

或者,您可以创建三个新的编辑器按钮(每个字体大小一个),单击这些按钮时,会删除元素上的任何现有字体大小类,并添加新的。

总之,我不相信您当前的方法会将元素限制为单个类名。我会考虑一种新的方法。有很多文章详细介绍了如何添加新的编辑器按钮。