WordPress 默认会自动转义一些字符,比如单引号(' 源码显示')、双引号("源码显示"),也称“转换全半角标点符号”或者“代码转义”。因为 WordPress 会将源代码中的所有半角符号自动修正为全角符号,以防止外部源代码在网页上执行。那么如何防止英文字符转义成中文字符?接下来详细分享。
解决方法如下:
一、禁用所有的 WP 转义
Wordpress 自带一个专一的钩子wptexturize,很多地方都用到了这个钩子,具体可以在wp-includes/formatting.php中查看。我们可以在WordPress主题的functions.php文件中添加以下代码来取消掉这个转义:
add_filter( 'run_wptexturize', '__return_false' );
二、调用remove_filter函数来移除wordPress对wptexturize的调用
这是最简单的方法,在主题目录下的functions.php文件中添加如下代码即可:
//取消网站标题转换
remove_filter('the_title', 'wptexturize');
//取消博客标题转换
remove_filter('wp_title', 'wptexturize');
//取消网站摘要转换
remove_filter('the_excerpt', 'wptexturize');
//取消正文内容转换
remove_filter('the_content', 'wptexturize');
//取消文章标题转换
remove_filter('single_post_title', 'wptexturize');
//取消评论内容转换
remove_filter('comment_text', 'wptexturize');
//取消评论作者转换
remove_filter('comment_author', 'wptexturize');
//取消分类描述转换
remove_filter('category_description', 'wptexturize');
//取消侧栏标题转换
remove_filter('widget_title', 'wptexturize');
//取消侧栏内容转换
remove_filter('widget_text', 'wptexturize');
//取消友链描述转换
remove_filter('link_description', 'wptexturize');
三、安装Quotmarks Replacer插件
Quotmarks Replacer 是一个通过禁用 wptexturize 函数,解决 WordPress 自动将半角的单引号、双引号和省略号转换为全角符号的问题。使后台输入的标点格式与HTML源代码的标点格式保持一致的插件。
我们将上面的脚本添加到当前主题目录下的functions.php文件中,就可以过滤到标题、内容、评论、摘要等大部分位置源代码半角转换成全角符号的问题。不过,我们并不需要所有的位置都禁止转换,可以根据有需要的转换复制相应代码即可。