wordpress的一个问题

昨天在IE8下修改页面时还遇到了另一个问题。wordpress自作聪明的把一些标点符号,例如(’),(…)给自动转换为了UTF-8标准码格式,变成(’)和(…)。

我以前一直没有发现这个问题,因为在IE6,7和FX2,3下这些符号的显示并无任何夸张的地方(至少在我的电脑上如此)。这些符号虽然被转换为了UTF-8格式,但实际显示中还是很像半角引号。

不过,IE8开始遵守那个神秘的“标准”之后,如果你的blog和我的一样,是”*****’s blog”之类的名字,这个问题将显得异常明显,就会像图片中一样难看。
Bear's Blog New Zealand
询问Google大师之后,了解这个问题的根源在于/wp-includes/formatting.php这个文件中。猛击这个文件,删除wptexturize这个函数中你不喜欢的那些符号转换即可解决问题。

不过如果你和我一样对php一窍不通,而且很懒,有人写了一个小插件,Quotmarks Replacer,不到2k,能很好的解决这个问题,而且支持到wp 2.6。这个插件相当于禁掉了那个讨厌的函数。

我不知道wordpress这样做的目的是什么,洋人又不用全角标点符号。(啊,其实用的,只不过那个撇号不如图片中的那个一样夸张。)不过可以预见的是,如果IE8继续遵守这个标准,wordpress迟早得取消掉这种转换,否则将会对大量wordpress架设的英文blog带来麻烦。在英文中(’)这个符号用得太多了,中文反倒还好一些。

4 thoughts on “wordpress的一个问题

  1. 官方好像没给出解释和说法,不过,如果你去看过一些标准的外文报纸,杂志的话,比如 NY Times,你会发现他们使用的所有的 '' 都是全角的 ‘’。比如 It’s me. What’s up?。这应该是排版的一种标准而已,然而这样的话,有一些要经常帖代码的人,尤其是 php 代码的人就会遇到困难,还是希望 wp 能在今后设一个选项出来,让用户来决定是否转换

  2. 随手抓了一本Time,好像的确如你所说。不过他们用的是&# 8217;这个撇号?看上去不像,那个符号在印刷中占的位置很小。

    这似乎更多的是IE 8的问题,看了几个UTF-8编码的网站,&# 8217;这个’所占的位置都是异常的宽。不知道真正的标准是占多少位置?

Leave a Comment