WordPress是一款非常出色的程序,已经成为很多个人或者建站公司的首选。然而在使用中我们发现其对中文的支持不是很好,特别是Win主机下这个问题更加突出,最普遍的问题就中文tag标签无法访问和文章页面不支持中文,页面出现“有点尴尬诶!该页无法显示。”而无法显示正常内容。
产生这个问题的主要原因是地址编码问题,及UTF-8和GBK之间转换的问题。IIS 对 URL 截取的时候取得的是 GBK 编码,但是 WordPress 中文都用的 UTF-8 编码,所以我们要对编码进行处理后再交给数据库进行查询。解决办法有以下两种。
一、转换编码解决 WordPress 中文 Tag 链接问题(推荐)
打开文件:wp-includesclasses.php ,wordpress 3.+ 版本是 wp-includesclasse-wp.php,查找:
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
修改为
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
再查找
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
修改为
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");
保存,上传,问题解决。
二、禁止 Tag 伪静态解决 WordPress 中文 Tag 链接问题
打开文件:wp-includes/rewrite.php,查找:
function get_tag_permastruct() {
修改这个函数中的
if (empty($this->permalink_structure)) {
为
if (!empty($this->permalink_structure)) {
保存,上传,问题解决。