我试图在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文件已缩小,因此很难调试。有人知道这是什么原因吗?
最合适的回答,由SO网友:Castiblanco 整理而成
你所拥有的是working perfectly 在干净的地方WordPress
安装,使用Twenty Seventeen
, 因此,这意味着问题在于您在这个特定WordPress安装中缩小JS或其他任何内容的方式。
按常规操作,停用所有插件并再次检查,如果问题消失,请逐个激活,直到找到导致问题的插件,我很确定这是一个插件,但如果您这样做,并且问题仍然存在,请尝试使用默认模板,如Twenty Seventeen
.
我有过很多类似的插件经验,比如W3 Total Cache
或者类似的情况,我使用它们,它们会破坏东西,所以我必须找到有罪的配置,就像检查有罪的插件一样,将所有内容设置为默认值,然后开始激活和测试每个选项,以查看哪个选项导致了问题。