wordpress的引号问题

刚投入wordpress大家庭就发现了wordpress一个很不爽的“功能”,wordpress会自动将一些字符做智能替换,比如将单引号,双引号替换为全角的符号,这对于一般的blog帖子来说,也许算个贴心的功能(所以wordpress把这个叫做fancy quotes),可对于我这样的在帖子里有很多代码和命令的blog而言,简直不亚于一场灾难了,我突然发现以前帖子里的代码拷贝出来不能编译了,命令拷贝出来不能执行了,真的吓出一身冷汗。。。

还好,在后台编辑时发现,原先的引号符号都还在,所以只是wordpress在显示给前台时做了一些替换,有几种解决这个问题的方法:

  • 安装一个插件,可以将全角的引号再替换回去,不过我想这类插件可能会矫枉过正,将正常的全角符号也替换为半角,所以就没有安装了。
  • 将所有的代码/命令,在后台编辑一下,放入<pre>或<code>保护中,不过我的帖子太多,而且也不愿意给帖子加太多的格式。
  • 最后的招式就是修改代码了,在wordpress的wp-include/formatting.php中很容易找到这个做fancy quotes的代码,在函数wptexturize中,注释两行str_replace和preg_replace即可,它们是分别做静态和正则字符串的替换的。

最后这一招虽然很土,但实践证明,很管用 (我的版本是2.3.2)。

Leave a comment

Your comment