WordPress 单、双引号问题解决方法

» 2009-11-15 44条评论

2011.2.18 Update: 本文所述手动方法是在 WP2.9.x版本下实现,或许在新版本的 WP (wp3.0以上)下无效(我没有测试),推荐使用本文所说的插件。

======================

WordPress 单、双引号问题让我郁闷很久了,不过我又忘记去寻找解决方法,今天突然想起就搜啊搜,找到一些方法,贴出来记录一下

解决方法的原出处我不知道是哪里,我找到的是灰狼博客里面的,下面的内容引自灰狼博客此篇文章:http://huilan.gdin.net/wap/index-wap2.php?p=1165

WordPress 单引号问题困扰了我很久,即无论在什么语言版本的 WordPress 中'(英文半角引号)总是显示成'(中文全角单引号),英文的三个句号(...)都会被转换为中文的半个省略号(…),双引号也有同样的问题,中文的一对双引号("")在 WordPress 中显示出来是(“”)。

在用英文写 BLOG 或博文中有代码片断的时候,不但影响显示美观,复制下来的代码基本无法直接使用。原因据说是因为 WordPress 为了避免某些字符在 MySQL 中二义性而改用全角显示和储存这种字符。解决方法如下:

修改源文件:wp-includes/formatting.php

找到以下代码并注释掉:

// static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

即:

// static strings
// $curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
// $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

保存即可。【注意:注意保存的时候,文件格式要选择UTF-8,否则可能出错!】

另外,针对 WordPress 单引号问题还有个插件可以解决:

参考:Quotmarks Replacer

Quotmarks Replacer 是一个通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致的插件。

上面修改源代码的方式,也是通过禁用 wptexturize 函数的标点替换部分来达到目的,不想修改源代码的朋友可以直接使用插件。

当然我用的是第一个方法,因为我本身就修改了几个Wordpress原文件,不在乎再修改一个。

2009.10.15 10:23 Update

万戈的方法简单:

在主题的functions.php里加一句:

remove_filter('the_content', 'wptexturize');

这就可以了,以后WP升级也不影响。

有个缺点:就是只在文章正文里起效,其他文章标题、文章摘要、评论内容、评论摘要、评论作者等区域没有效果 - by Sparanoid

zww
or
oooo

“WordPress 单、双引号问题解决方法”有44条评论

  1. 万戈 says:

    其实不用改WP原文件,也不需要用插件
    在主题的functions.php里加一句:
    remove_filter('the_content', 'wptexturize');
    这就可以了,以后WP升级也不影响,试试吧~

    1. 帅青蛙 says:

      老万的方法好。

      1. zwwooooo says:

        你的博客现在访问不了,咋啦?

    2. zwwooooo says:

      哈哈,这个方法好,我添加到文章里面去好了,起码这样就少修改一个文件

    3. zwwooooo says:

      如楼下Sparanoid所说:直接在主题中加代码的话,只会应用到正文段落,文章标题、文章摘要、评论内容、评论摘要、评论作者等区域同样需要禁用

      1. 万戈 says:

        恩,没错,因为这个函数本身就是提取自Quotmarks Replacer插件,如果你看一下这个插件的函数就知道了,有需要的话可以把其他几个也加上,或者直接复制Quotmarks Replacer里的所有内容到functions.php里也一样~ :mrgreen:

        1. zwwooooo says:

          哈哈哈,这跟用插件其实也差不多,懒人就这样也用,既然修改了wp文件,无所谓多一个啦

  2. A.shun says:

    我现在每管这个问题了
    以前用插件
    现在学着你说的,pre

    1. zwwooooo says:

      pre最好用是在ZR和wp后台,WLW和菊子曰都不能胜任 = =

  3. 為什么有那么多形式的標點符號 我狂汗

    1. zwwooooo says:

      谁叫我们的语言那么华丽和复杂呢?

  4. Sparanoid says:

    直接在主题中加代码的话,只加

    remove_filter(’the_content’, ‘wptexturize’);

    只会应用到正文段落,文章标题、文章摘要、评论内容、评论摘要、评论作者等区域同样需要禁用

    1. zwwooooo says:

      看来还真的是,我刚才刚改用万戈的你看评论的标点符号就出问题了

  5. SATURN says:

    额。。。貌似我不搞代码的。。。纯路过。

    1. zwwooooo says:

      路过也坐下来休息一下,外面风大、雪大

  6. 小y says:

    我直接用的插件~嘿嘿~改代码升级有些麻烦。。

    1. zwwooooo says:

      自己选择自己喜欢的方式 :mrgreen:

  7. alswl says:

    我用的是第一种
    如果php文件没有中文字符,不存为utf-8也没事

    1. zwwooooo says:

      自己折腾过的php文件一般都有中文,因为英文不好

  8. Louis Han says:

    我比较懒,直接用Quotmarks Replacer解决的

    1. zwwooooo says:

      呵呵,其实这个插件也占用不了多少资源,主要是看到插件数字不爽而已

  9. Vicia says:

    我都是写文章的时候因为双引号的问题格外郁闷,想着解决它,写完就忘。还是直接改wp得了,反正别的地方也有修改。

    1. zwwooooo says:

      有时wp后台会很慢,所以我喜欢用离线写博软件写,特别是像我一篇文章要修改n次的 = =

  10. derek says:

    依然做个记号 :cool:

  11. 阿修 says:

    没看明白什么意思,我再看看……

    1. zwwooooo says:

      简单来说就是你写文章用的英文单双引号会自动转换为中文标点符号,对于贴代码十分不方便

  12. socekin says:

    学习了,最近标记的文章有点多了,赶快实验 :mrgreen:

    1. zwwooooo says:

      学习重要,你的博客更新相当慢了,其实是不是吐个槽也好,起码大家知道你还在坚持

      1. socekin says:

        这不是正赶上了毕业嘛,麻烦事太多了 :???:

  13. countmeon says:

    额 我很少用这个, 以至于我都没有关心过

    1. zwwooooo says:

      如果少贴代码不会有什么大问题的

  14. 我不在乎 says:

    我的WP怎么从来不转换标点?

    1. zwwooooo says:

      你试试贴代码

  15. 首页的字体,很漂亮,雅黑的吧。貌似还有阴影。 :smile:

    1. zwwooooo says:

      中文字体我没设,只设了英文字体,中文字体随访客的浏览器默认字体。嗯,加了阴影效果,css3.0嘛

  16. willin says:

    都怪 WP 想太多了... :arrow:

    1. zwwooooo says:

      嗯,想太多却没处理好 :arrow:

  17. 小毅 says:

    留个记号,经常发代码,肯定会用得着

  18. says:

    我想知道到底会对数据库产生什么影响呢

    1. zwwooooo says:

      @安 没啥影响,我用了大半年,搬家几次,一切正常

  19. haibor says:

    好像对wp3.x后续版本无效!!!

    1. zwwooooo says:

      @haibor
      具体没测试,建议用插件

发表评论

昵称 *

网址

B em del U Link Code Quote