TinyMCE自定义样式在切换样式时删除类

时间:2018-06-07 作者:Connor

我已经使用tiny_mce_before_init 过滤器挂钩。它们通过向块级元素添加类来工作。请参见以下代码:

function byron_mce_before_init($settings) {
    $style_formats = [
        [
            \'title\' => \'Lead\',
            \'block\' => \'p\',
            \'classes\' => \'lead\',
        ],
        [
            \'title\' => \'Tagline\',
            \'block\' => \'h5\',
            \'classes\' => \'tagline\',
        ],
    ];
    $settings[\'style_formats\'] = json_encode($style_formats);
    return $settings;
}
add_filter(\'tiny_mce_before_init\', \'byron_mce_before_init\');
我遇到的问题是,在上面定义的样式之间切换时,类没有被删除;相反,新类被附加到旧类上,而不是替换它。在切换样式时,我似乎不知道如何删除旧类。任何帮助都将不胜感激。

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

这个问题似乎是在社区里提出来的。蒂尼姆斯。com,答案如下:https://community.tinymce.com/communityQuestion?id=90661000000IiyjAAC

您不能让您定义的样式删除任何以前的类,但您可以通过从下拉列表中选择样式来再次“应用”样式,并且它将被删除,即该类将从标记中删除。然后可以从下拉列表中选择不同的样式,与该样式相关的类将添加到标记中。

SO网友:vivalavendredi

您可以覆盖旧类。

而不是:

\'classes\' => \'lead\'
使用此选项:

\'attributes\' => array(\'class\' => \'lead\')

SO网友:Chris

我也有类似的问题

让doNotRemoveFormat=false;

tinymce.init({
style_formats:  [
              {title: \'Footer - 11px\', inline: \'span\', classes: \'admin-footer\'},
              {title: \'Standard - 14px\', inline: \'span\'},
              {title: \'Heading 1 - 19px\', inline: \'span\', classes: \'admin-heading-1\'},  
              {title: \'Heading 2 - 22px\', inline: \'span\', classes: \'admin-heading-2\'}  
            ],
setup: function (ed) {
  ed.on(\'ExecCommand\', function checkListNodes (evt) {
if (cmd === \'mceToggleFormat\') {
    if(!doNotRemoveFormat) {  
      let val = \'runThis|\' + evt.value;
      this.execCommand(\'RemoveFormat\', false, val);
    } else {
      doNotRemoveFormat = false;
    }
} else if (cmd === \'RemoveFormat\') {
  let value = evt.value.split("|");
  if(value[0] === \'runThis\') {
    doNotRemoveFormat = true;
    this.execCommand(\'mceToggleFormat\', false, value[1])
  }
});

结束

相关推荐

只有在尝试访问wp-admin页面时才会出现“重定向次数过多”

我想我会问自己的问题,因为重复的问题还没有回答。由于某种原因,在我的Ubuntu VPS上新安装了Wordpress 4.9.1,启用了Cloudflare发布的“灵活”SSL,并最终在Wordpress中切换URL(从https://foo.com“收件人”https://foo.com)我无法再访问我的管理面板。Attempted Fix #1: 清除浏览器cookie、缓存和保存的数据,以及任何Cloudflare缓存。Attempted Fix #2:修改wp-config.php 使用代码:de