WordPress在CKeditor编辑器中Syntax Highlighter++插入代码失效的问题

CKEditor​一直是吾爱不释手的一款编辑器,比起WordPress集成的TinyMCE编辑器不知强尼玛多少倍。但是升级到WP3.5之后,使用Syntax Highlighter++插件插入代码时却没有任何反应,调试一会后找到了解决办法。

究其原因在于WP3.5以来,media-upload相关js的加载不再是全局的,而是在媒体上传弹出窗口或TinyMCE编辑器内加载,CKEditor For WordPress替换TinyMCE后,该js加载不了,而yntax Highlighter++插件依赖于其中的send_to_editor方法。

说了这么多,下面提供解决办法:

编辑Syntax Highlighter++插件的syntax-highlighter-with-add-button-in-editor/syntaxhighlighterpp.php文件,将如下代码替换为

​win.send_to_editor(str)

替换为:

if((typeof win.send_to_editor) != "undefined") {win.send_to_editor(str);} else if((typeof CKEDITOR) != "undefined") {CKEDITOR.instances.content.insertHtml(str);}

除上述方法外,也可以在主题模板的支持函数文件function.php内添加如下代码来加载media-upload js:

wp_enqueue_script( 'media-upload' );

这样就能够兼容CKeditor编辑器了,此问题已反馈给插件作者leo108

本文采用CC BY-NC-ND协议进行许可,传播时请保留链接:http://huangzhiqun.com/skill/ckeditor-syntax-highlighter-fail.html

3,081 次阅读
  1. 目前还没有评论

发表评论

五 × = 三时 五

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

疑惑 调皮 伤心 抠鼻 惊讶 微笑 脸红 坏笑 惊讶 发呆 撇嘴 酷 阴险 咒骂 愤怒 白眼 鼓掌 得意 汗 打呵欠 大哭 憨笑

评论