解决wordpress中文标签出现404错误

痕风 2013年1月4日11:10:57271

wordpress设置伪静态后,发现打开中文标签出现404错误,英文标签非常正常。

第一种方法:此方法对wordpress 3.5版本貌似无效,3.5版本见方法三。

查找网站根目录下的wp-includes/class-wp.php文件中的如下代码(3.3.1版本是这个文件):

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');

好了,问题解决。

第二种方法:

function get_tag_permastruct() {
if (isset($this->tag_structure)) {
return $this->tag_structure;
}
if (empty($this->permalink_structure)) {
$this->tag_structure = ”; 
return false;
}
if (empty($this->tag_base))
$this->tag_structure = $this->front . ‘tag/’;
else
$this->tag_structure = $this->tag_base . ‘/’;
$this->tag_structure .= ‘%tag%’;
return $this->tag_structure;

将其中的

 if (empty($this->permalink_structure)) { 

修改为

if (! empty($this->permalink_structure)) { 

(注意只加了一个英文“ !”号,经测试,使用的这个方法有效。)

第三种方法:使用用插件Atuo Tag Slug

在后台插件搜索安装即可。

解决wordpress中文标签出现404错误

本站设置成全部转换成汉语拼音格式的,以后每写一篇都自动添加,但之前的标签不会自动转换,这需要你手动转换一下,如下图所示:
解决wordpress中文标签出现404错误

继续阅读
weinxin
痕风的起点
专注于互联网资讯、中央空调、Windows、wordpress、建站技术、软件应用等相关网络资源的分享。
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  2   博主  0
    • 冷雨紫 冷雨紫 3

      嗯。。不错,改代码方法对于wordpress3.5已经无效。。只能用这个插件了!

      • 源代码 源代码 3

        :cool: 插件Atuo Tag Slug的api号谁有,给分享个出来啊!! :cry: :cry: