WordPress 有个自带函数 wptexturize,它会将纯文本中的直引号转换为智能引号(弯曲的引号),比如下面这句话:
代码语言:javascript复制'cause today's effort makes it worth tomorrow's "holiday" ...
转换为:
代码语言:javascript复制’cause today’s effort makes it worth tomorrow’s “holiday” …
还能根据需求转换撇号、破折号、省略号、商标符号和乘法符号,所有的智能转换有下面这些:
原始文本 | 转换之后的文本 | 符号名称 |
---|---|---|
"---" | "—" | em-dash | 破折号 |
" -- " | "—" | em-dash | 破折号 |
"--" | "–" | en-dash | 连接号 |
" - " | "–" | en-dash | 连接号 |
"..." | "…" | ellipsis | 省略号 |
"xn–" | "xn--" | |
`` | “ | opening quote | 开启引号 |
"hello | “hello | opening quote | 开启引号 |
'hello | ‘hello | opening quote | 开启引号 |
'' | ” | closing quote | 关闭引号 |
world." | world.” | closing quote | 关闭引号 |
world.' | world.’ | closing quote | 关闭引号 |
" (tm) " | " ™ " | trademark symbol | 注册商标符号 |
1234" | 1234″ | double prime symbol | 角秒符号 |
1234' | 1234′ | prime symbol | 角分符号 |
'99 | ’99 | apostrophe|缩写年份前的撇号 |
Webster's | Webster’s | apostrophe|单词中的撇号 |
1234x1234 | 1234×1234 | multiplication symbol | 乘法符号 |
这些转换是为了方便英文,不管是输入直引号,都能转换成弯引号,并且转换之后,这些字符都是使用 HTML 实体显示的,有时候在某些情况下会很奇怪。
并且这个转换被大量使用,比如文章标题,内容,摘要等的显示都经过这个函数转换,并且这个转换过程使用了大量的正则,效率并不是非常高。
最后在中文环境下,开启的引号和关闭的引号都是会正确的输入,其他的这些所谓的智能转换在中文环境下意义不大,所以可以在当前主题的 functions.php
文件中加入如下代码:
add_filter('run_wptexturize', '__return_false');