霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

WordPress 单引号自动转换问题的解决方法

WordPress 半角单引号自动转换成全角的问题困扰了我很久,起初我还认为是自己在编辑文章时候的失误,后来发现无论在什么语言版本的 WordPress 中英文半角引号(‘)总是显示成中文全角单引号('),双引号也有同样的问题,中文的一对双引号(“”)在 WordPress 中显示出来是(““)。

这种情况在中文文章里勉强还可以接受,但在英文文章里就非常不好了,不但影响显示美观,显得很不专业,而且如果url链接里面也有中文引号的话,在不同的浏览器下面会出现不一致的情况。wordpress 改用全角显示和储存单双引号的原因据说是为了避免某些字符在 MySQL 中二义性。

我们有两种方法解决:

一、安装 Quotmarks Replacer 插件。

在后台插件管理页面,搜索 Quotmarks Replacer,然后安装激活即可。这个办法最方便省事。

二、修改 wordpress 核心文件:/wp-includes/formatting.php

找到以下两行代码并注释掉(其位于 wptexturize 函数中):

// static strings
//$curl = str_replace($static_characters, $static_replacements, $curl); //注释掉本句
// regular expressions
//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl); //注释掉本句

保存文件并上传覆盖原文件。

上面修改源代码的方式,也是通过禁用 wptexturize 函数的标点替换部分来达到目的,Quotmarks Replacer 插件通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角标点的问题。如果你不想修改源代码或者为了以后 wordpress 升级方便,可以直接使用 Quotmarks Replacer 插件方式。