解决SyntaxHighlighter Evolved带来的字符转义问题

我的wordpress博客装了 Syntax Highlighter 插件,编辑文章的时候,在可视化模式与文本模式之间切换,会把代码块中的 > < (尖括号和引号之类的符号)等特殊符号转义成 &gt; &lt; &quot; ,非常烦人

今天上网查了一下发现有一个折中的解决方法,只需要改动一行Highlighter的代码。

解决方法

修改 wp-content/plugins/syntaxhighlighter/syntaxhighlighter.php:

原本的代码:

# 第1046行(Syntax Highlighter Evolved 3.2.1版本)
# 找不到请搜索一下即可
$code = ( false === strpos( $code, '<' ) && false === strpos( $code, '>' ) && 2 == $this->get_code_format($post) ) ? strip_tags( $code ) : htmlspecialchars( $code );

改后的代码:

$code = ( false === strpos( $code, '<' ) && false === strpos( $code, '>' ) ) ? strip_tags( $code ) : htmlspecialchars( $code );

保存文件,重新加载文章,问题解决。

之所以说是折中的方法,因为并没有从根本上解决问题,更新插件的时候仍旧会导致更改被还原,需要再弄一次。(当然你也可以改插件名字和文件夹名,那就可以关闭自动更新了)