Old

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

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

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/24699

44 comments

  1. 万戈 万戈 Firefox 3.5.4 Firefox 3.5.4 Windows XP Windows XP

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

    沙发
  2. 帅青蛙 帅青蛙 Opera 10.01 Opera 10.01 Windows XP Windows XP

    老万的方法好。

  3. A.shun A.shun Opera 10.10 Opera 10.10 Windows XP Windows XP

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

    板凳
  4. ......

Leave a Reply