wordpress点击tag中文标签链接后没有找到您要找的内容
一、wordpress 使用动态链接tag标签中中文链接找不到页面的解决方法
产生中文tag链接无法打开或者找不到博客文章的原因在于WordPress不支持中文的编码。那我们就需要强制让WordPress能支持中文的编码形式,即UTF-8和GBK编码。
修改方法,修改wp-include中的classes-wp.php文件(WP3.1版本),将第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-wp.php文件上传并覆盖原文件即可。
二、wordpress 设置静态后标签中中文链接找不到页面的解决方法
用win IIS主机,设置Wordpress的TAG标签,在前台点击进入的时候发现打不开跳到404错误页,编码问题。
所以需要把它转换成UTF-8和GBK的编码
1、修改wp-includes/rewrite.php
这是网上最常见的方法,原理是,让WordPress在对其他内容使用Permalink的时候,对tag不使用,而使用链接2的QueryString模式发送中文编码:
if (empty($this->permalink_structure)) { //—–this line need change——
改为
if (!empty($this->permalink_structure)) {
2、如果你用的是windows主机,还可以这样做:
IIS会将PathInfo中的UTF-8转换成GBK,而QueryString就不会转换,故而为了使用Permalink,采用以下方法:
打开wp-includes/classes.php文件。在154到159行位置
if ( isset($_SERVER[‘PATH_INFO’]) )
$pathinfo = $_SERVER[‘PATH_INFO’];
else
$pathinfo = ”;
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25”, $pathinfo_array[0]);
$req_uri = $_SERVER[‘REQUEST_URI’];
改为
if ( isset($_SERVER[‘PATH_INFO’]) )
$pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8”, “GBK”);
else
$pathinfo = ”;
$pathinfo_array = explode(‘?’, $pathinfo);
$pathinfo = str_replace(“%”, “%25”, $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8”, “GBK”);
这种发放的缺点是 :只对Windows主机、且必须是Windows下的IIS主机有效。