解决wp-pagenavi不支持中文Tags分页问题
WP-PageNavi,一个超赞的WordPress博客分页插件,开发作者是:GamerZ,scribu。截止目前为止做高版本为2.72,最后更新日期是2010-4-19,支持中文,被下载次数高达87万之多,常年跻身Most Popular之列。漂亮的分页样式,简单的实现办法,让他成为WordPress博客必备插件之一。
但中文博客下却出了瑕疵,当然此瑕疵是因为中文的不“合群”造成。当你的Tags标签,在没有标签别名的情况下,达到分页设置后,分页因不支持汉字而打不开,出现404错误提示。我发现此问题还要感谢Google网站管理员工具,在故障诊断,抓取错误里给我详细的列出了此问题。
此问题比较隐蔽,需要同时达到以下三个条件才能激发:1、tags标签是中文,无标签别名;2、开启了Wordpress博客的固定链接(扩展阅读:WordPress应用:五个生成固定链接、永久链接参考标准、WordPress应用:让WordPress固定链接个性化);3、tags中文标签达到或超过分页设置。读我此文的朋友如果你同时具备了这三种,请立即查看你的博客,如出问题那就和我一起DIY修改吧。
就如这则日志的标题,我这里给大家提供一种办法,解决wp-pagenav分页插件,不支持中文Tags分页问题。解决思路就是让UTF-8编码的Tags转换成GBK输出,不转成GB2312的原因,在于GB2312是简体中文编码,不支持繁体中文。如果Tags是繁体,照样出乱码而无法打开。
解决wp-pagenavi插件中文tags分页问题
方法一:修改wp-pagenav文件
1、备份你的wp-pagenav分页插件,形成良好的备份习惯。这里只需要对wp-pagenavi.php文件操作,如果你懒干脆只备份此文件。
2、用FTP软件,二进制方式下载wp-pagenavi.php文件到本地,使用Editplus或Dreamweaver打开文件。搜索下面代码(大约170行):
return "<a href='" . esc_url(get_pagenum_link($page)) . "' class='$class'>$text</a>";
3、在此句前加“#”,或用“/**/”把词句包含,注释掉此段代码。另起一行,加入如下代码:
return "<a href='" . esc_url(mb_convert_encoding(get_pagenum_link($page), "UTF-8", "GBK")) . "' class='$class'>$text</a>";
4、保存文件,并上传到服务器,测试你的Tags分页是否可用。我的Tags:网站优化,截止目前为止有10个。
方法二:给中文标签写上别名
登录wordpress后台,在文章标签里。给每一个含中文的Tags标签,加上一个标签别名。“别名” 是URL友好的另外一个名称。它通常为小写并且只能包含字母,数字和连字符。
对于上百个以上中文Tags标签的博客,此种方法工作量巨大。我看了就头疼,因此选用了第一种方法。
后记
1、2011年8月12日06:56分,进行了排版和修改。
2、此文适用于较早版本wp-pagenavi。如果解决不掉您的问题,请移步:

@不得言
哈哈,博主厉害!此办法确实可行。这些彻底解决了win下wordpress伪静态问题了。
只是有一点,你说的那行代码在我的wp3.0版本中是1477行,不是1565。不过这不影响我修改后的效果,非常好,感谢博主!
@没有风 经过艰苦测试,我找到了解决办法,这个需要修改wordpress的内置函数next_posts(),它存在于wp-includes文件夹的link-template.php,第1564行。
把1565行
替换成:
测试地址:http://www.budeyan.com/tag/%E5%8F%8B%E6%83%85%E9%93%BE%E6%8E%A5/
测试图片:http://www.budeyan.com/wp-content/uploads/2011/08/next_posts-gbk.gif
@没有风 是呢,我看了你的描述又仔细查看了一下网站 标签TAGS分页比较多 ,含有“》”的确实是打不开。——我一直没有发现过这个问题。
感谢你提出这个问题。我将尽快解决此问题。你的EMAIL:taklele@XXXX.com,我找到解决办法,会给你写信。
楼主,非常感谢您这篇文章。按照您的指点,修改了一下,发现确实解决了一部分问题。数字翻页部分已经没有问题了。但是数字后面的”》” ,这个链接,还是不行。如你文中提高的“网站优化”tag。1 2 3 4 翻页没问题。“》”翻页就不行了。请楼主解决并告知我一下,感激不尽。
[...] 1、找到wp-content/plugins/wp-pagenavi下的core.php第153行,修改成下面代码。保存后,二进制方式上传到服务器。中文标签分页就可以打开了。如果你的插件是以前的版本,请更新插件,或参考《解决wp-pagenavi不支持中文Tags分页问题》 [...]
[...] 注意:如果您使用的是WP-PageNavi分页导航插件2.73,请参考3(153行);如果您使用的是更早前的版本,尝试参考《解决wp-pagenavi不支持中文Tags分页问题》。 分类: 站长手札标签: wordpresswordpress3.2.1wordpress升级wordpress更新 评论 (0)Trackbacks (0) 发表评论 Trackback [...]
[...] 还有一个下一页“»”无法打开,正如没有风在《解决wp-pagenavi不支持中文Tags分页问题》说的: 楼主,非常感谢您这篇文章。按照您的指点,修改了一下,发现确实解决了一部分问题。数字翻页部分已经没有问题了。但是数字后面的“》” ,这个链接,还是不行。如你文中提高的“网站优化”tag。1 2 3 4 翻页没问题。“》”翻页就不行了。请楼主解决并告知我一下,感激不尽。 [...]
[...] 还有一个下一页“»”无法打开,正如没有风在《解决wp-pagenavi不支持中文Tags分页问题》说的: 楼主,非常感谢您这篇文章。按照您的指点,修改了一下,发现确实解决了一部分问题。数字翻页部分已经没有问题了。但是数字后面的“》” ,这个链接,还是不行。如你文中提高的“网站优化”tag。1 2 3 4 翻页没问题。“》”翻页就不行了。请楼主解决并告知我一下,感激不尽。 [...]