完美解决WordPress单双引号自动转换全角问题

摘要WordPress半角单双引号、省略号等标点符号自动转换成中文全角标点的完美解决办法:1)使用
标签;2)修改formatting.php中的wptexturize()函数;3)Quotmarks Replacer插件。					

今天,在WordPress标题关键字和描述优化技巧一文给网友答复时,发现后台编辑评论时英文半角状态的双引号,到前台一预览就自动变成中文全角的双引号了。由于回复的内容是代码片段,如果直接copy不替换双引号的话,WordPress肯定会报错。

小拼也是接触WordPress不久,倒也一时犯难了。继续测试呗,发现编辑器中输入英文半角状态的单引号、省略号等标点符号依然会被自动转换为中文全角状态下的标点符号。看来这是WordPress通“病”了,究其原因应该是WordPress程序问题,会自动对英文状态标点符号做了中文格式化处理。小拼认为,这可能是WordPress开发团队从安全方面考虑,避免英文状态下的标点符号被“黑客”利用,从而带来安全隐忧。

那么,如何解决WordPress自动将半角的单引号、双引号以及省略号自动转换为全角标点符号的问题呢?随手Google或百度一下,发现好多WordPress技术文章都在需要修正的标点符号下方加了一句“请将中文全角XX替换成英文半角XX”,换汤不换药,有些俗,特俗,用户体验还很差,还是从本质上去解决吧!小拼总结了三个方法供你参考:

1)使用HTML中的<code></code>或<pre></pre>标签,封装那些不需要转换格式的英文半角标点符号,是最完美的解决方案。因为大多数情况下,都是一些代码示例中才需要使用到英文标点符号,而WordPress默认是不会处理<code></code>或<pre></pre>里的标点符号的,<blockquote></blockquote>则不行。这种方法的好处在于不需要修改WordPress核心文件,对不懂技术的站长来说是很好的选择,而且WordPress官方更新频繁,每次都修改的话也很“纠结”。

延伸思考:我的文章中已经使用了大量的<blockquote></blockquote>,那该怎么办呢?很简单,只需要将他们批量替换为<code></code>或<pre></pre>,打开phpMyAdmin执行如下sql语句即可:

update `wp_posts` set post_content=replace(post_content, '<blockquote>', '<pre>');
update `wp_posts` set post_content=replace(post_content, '</blockquote>', '</pre>');
或
update `wp_posts` set post_content=replace(post_content, '<blockquote>', '<code>');
update `wp_posts` set post_content=replace(post_content, '</blockquote>', '</code>');

操作前备份好数据库,将wp替换成你的WordPress安装时的数据表前缀。

小提示:文章或评论编辑中代码示例片段使用<code></code>或<pre></pre>标签封装,即可完美解决半角英文状态标点符号自动转换成中文全角的问题。

2)修改WordPress核心文件。用支持UTF-8格式的编辑软件(Dreamweaver、EditPlus、EmEditor等)打开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);

注释掉,即修改为:

// static strings
//取消英文标点符号自动转换成中文状态
//$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
//$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

保存,再刷新一下前台文章,那些英文半角状态的单引号、双引号和省略号,是不是没被转换呢?

3)使用WordPress:Quotmarks Replacer插件。Quotmarks Replacer插件原理是禁用wptexturize()函数,同第2种方法类似。不过,小拼不推荐使用WordPress插件,多少对系统性能有些影响,而且WordPress已经够“胖”了,这种标点符号的小问题直接干掉就好了!

快速通道:WordPress插件——Quotmarks Replacer官方下载

以上就是WordPress的文章或是评论中,输入半角英文状态的单引号、双引号、省略号等标点符号时,自动被转换成中文全角标点符号问题的完美解决方案。小拼建议,尽量不要修改WordPress核心文件,利用<code></code>或<pre></pre>标签就可以了,简单就是王道。

目前留言:1   其中:访客:0   博主:0   引用: 1 条

评论加载中...

来自外部的引用: 1 条

  • SAE wordpress 文本引用

给我留言

图片 表情