Wordpress 标签和分类页面返回404 解决办法

说实话我之前自己还没有点过自己网站上的标签和分类归档的链接,直到@BC 跟我说我和他网站上的标签点开都是404才发现这个问题。马上google了一下,发现确实是wordpress在对于中文支持方面的一些欠缺,会导致在这些标签或者分类页面出现中文乱码。不过没关系,google很强大,我找到了解决方案,再这里贴出来分享,因为这方面的文章有点少,而且我也实验了几次,所以在之前朋友的基础上再补充了一点注意的地方。

原理:修改代码使Wordpress在解析固定链接时自动把其中已编码的中文字符进行解码

*注意,网络上一些通过在某个empty()函数前面加“!”的方法是错误的,那种方法会使得标签的固定链接无法使用,而只能通过动态链接访问标签。这个我有尝试过,完全行不通,大家就少走弯路了。下面我们来看正确的方法。

1、首先修改WP-include中的classes.php文件将第145行和第150行代码进行修改。

第145行原代码:
$pathinfo = $_SERVER[‘PATH_INFO’];

替换为:

$pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8“, “GBK“);

第150行原代码:

$req_uri = $_SERVER[‘REQUEST_URI’];

替换为:

$req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8“, “GBK“);

修改后,保存下,然后将保存后的classes.php文件上传并覆盖原文件即可。

注意在复制粘贴这段代码的时候要主意后面“UTF-8“, “GBK“两个标签周围的引号格式。有时候用编辑器或者记事本更改的时候可能会变成其他形式的引号,所以要么用正规的编辑器,要么自己手动输入半角引号,这样比较保险。