将自定义块格式添加到TinyMCE。在应用格式时出现JavaScript错误之前,一切都会正常运行

时间:2018-08-28 作者:Gavin

我试图在TinyMCE中的“块格式”下拉列表中添加一个项。我想添加一个名为“标题2灯光”的格式。

在里面functions.php 我添加此代码:

function theme_tiny_mce_before_init( $init ) {
    $init[ \'block_formats\' ] = \'Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 2 Light=h2-light;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Address=address;Pre=pre\';
    return $init;
}
add_filter( \'tiny_mce_before_init\', \'theme_tiny_mce_before_init\' );
还有这个:

function theme_after_wp_tiny_mce() {
?>
    <script>
        jQuery( document ).on( \'tinymce-editor-init\', function( event, editor ) {
            tinymce.activeEditor.formatter.register( \'h2-light\', {
                block : \'h2\',
                classes : \'light\'
            } );
        } );
    </script>
<?php
}
add_action( \'after_wp_tiny_mce\', \'theme_after_wp_tiny_mce\' );
这段代码成功地将“Heading 2 Light”添加到列表中,但当我单击它以应用格式时,会出现以下JavaScript错误:

Uncaught TypeError: Cannot read property \'0\' of undefined
    at Object.Eb [as applyFormat] (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at Lb (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at Object.toggle (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at d (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at mceToggleFormat (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at qg.execCommand (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at Hx.execCommand (wp-tinymce.php?c=1&ver=4800-20180716:3)
    at wp-tinymce.php?c=1&ver=4800-20180716:5
    at i.onselect (wp-tinymce.php?c=1&ver=4800-20180716:5)
    at jg.c.fire (wp-tinymce.php?c=1&ver=4800-20180716:3)
TinyMCE JavaScript文件已缩小,因此很难调试。有人知道这是什么原因吗?

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

你所拥有的是working perfectly 在干净的地方WordPress 安装,使用Twenty Seventeen, 因此,这意味着问题在于您在这个特定WordPress安装中缩小JS或其他任何内容的方式。

按常规操作,停用所有插件并再次检查,如果问题消失,请逐个激活,直到找到导致问题的插件,我很确定这是一个插件,但如果您这样做,并且问题仍然存在,请尝试使用默认模板,如Twenty Seventeen.

我有过很多类似的插件经验,比如W3 Total Cache 或者类似的情况,我使用它们,它们会破坏东西,所以我必须找到有罪的配置,就像检查有罪的插件一样,将所有内容设置为默认值,然后开始激活和测试每个选项,以查看哪个选项导致了问题。

结束

相关推荐

如何设置来自TinyMCE的元素的样式

如果我在TinyMCE编辑器中有一个类为“test”的段落,如何使用我的样式设置该段落的样式。css文件在我的主题中,或者我需要制作一个单独的文件,如果需要的话,我会怎么做?顺便说一下,我可以从样式中看到我应用的样式。当我转到visual TinyMCE编辑器时,而不是在预览页面时,使用css文件