现在网站的字符集已经默认使用 UTF-8,WordPress 也是,原来我们可以在 WordPress 后台设置网站的编码模式,但是 WordPress 从 3.5.1 版本开始,取消了后台这个设置,现在只能默认为 UTF-8 字符集。
但是 WordPress 还保留这个 blog_charset
这个选项,在安装的时候,默认把 UTF-8 写入 options 表中,然后网站前端通过方法 get_option('blog_charset')
获取。
但是由于历史遗留问题,WordPress 使用这个方法在获取字符集的时候,还使用两个 filter 进行过滤:
代码语言:javascript复制add_filter('option_blog_charset', '_wp_specialchars');
add_filter('option_blog_charset', '_canonical_charset');
_wp_specialchars
函数是是将一些特殊的字符转成 HTML 实体。
而_canonical_charset
则把获取字符集转成统一的名称,UTF-8
或者 ISO-8859-1
。
如果我们 WordPress 网站的字符集已经确定就是 UTF-8
,没有必要使用这两个函数过滤,通过下面这段代码直接返回就好:
add_filter('pre_option_blog_charset',function (){
return 'UTF-8';
});