解决wordpress复制代码时单双引号成中文字符
无论在什么语言版本的 WordPress 中’(英文半角引号)总是显示成'(中文全角单引号),英文的三个句号(…)都会被转换为中文的半个省略号(…),双引号也有同样的问题,中文的一对双引号(””)在 WordPress 中显示出来是(“”)。
在用英文写 BLOG 或博文中有代码片断的时候,不但影响显示美观,复制下来的代码基本无法直接使用,原因据说是因为 WordPress 为了避免某些字符在 MySQL 中二义性而改用全角显示和储存这种字符。解决方法如下:
1. 修改源文件: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,否则可能出错!】
2. 另外,针对 WordPress 单引号问题还有个插件可以解决:
Quotmarks Replacer 是一个通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角标点的问题。使后台输入的标点格式与前台读者浏览的标点格式保持一致的插件。
上面修改源代码的方式,也是通过禁用 wptexturize 函数的标点替换部分来达到目的,不想修改源代码的朋友可以直接使用插件。
3. 修改模版的方法最简单:
在主题的 functions.php 里加一句:
remove_filter(‘the_content’, ‘wptexturize’);
这就可以了,以后WordPress升级也不影响。
但有个缺点:就是只在文章正文里起效,其他文章标题、文章摘要、评论内容、评论摘要、评论作者等区域没有效果。
上面的代码可以让文章内容的过滤器失效, 达到显示代码的作用.
如果还想要在其他地方显示正常的代码, 例如标题, 摘要, 评论, 文章标题, 博客信息, 描述, 小工具的文本等等, 可以按照自己的要求去除相应的过滤器, 可用下面的代码来达到我们的目的:
$qmr_work_tags = array( 'the_title', 'the_content', 'the_excerpt', 'comment_text', 'list_cats', 'single_post_title', 'comment_author', 'term_name', 'link_name', 'link_description', 'link_notes', 'bloginfo', 'wp_title', 'widget_title', 'term_description', 'category_description', 'widget_text' ); foreach ( $qmr_work_tags as $qmr_work_tag ) { remove_filter ($qmr_work_tag, 'wptexturize'); }
需要注意的一点是, 这种实现方式需要在可视化编辑模式下输入文章的代码, 在HTML模式下会导致大部分代码丢失.
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/wpfuhao/656.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.