WordPress 是世界上最受欢迎也是最流行的博客系统,不过 WordPress 在中文支持上还存在不少问题,比如 WordPress 中文标签链接打不开,提示“404 页面未找到”。
产生中文 TAG 标签链接无法打开的原因在于 WordPress 不支持中文的编码。之前本博客分享过修改 WordPress 程序代码的方式实现修复这个问题的方法(详见 “wordpress中文标签出现404错误的解决办法”一文),不过这种方法有两个弊端,一是每次 WordPress 升级后又要重新修改文件很不方便,二是没能决绝中文标签的翻页问题。
今天“偶然”找到了一个插件(其实找了很久…),终于彻底地解决了这个问题!
插件名称:IIS Chinese Tag Permalink
插件地址:https://wordpress.org/plugins/iis-chinese-tag-permalink/
遇到了同样问题的朋友,直接安装上述插件就行了,如果有“插件强迫症”不想安装插件的,可以直接把以下这段代码扔到主题的 functions.php 中!
- /*
- Plugin Name: IIS Chinese Tag Permalink
- Plugin URI: http://blog.bossma.cn/php/in-iis-wordpress-chinese-tag-permalinks-plugin/
- Description: In IIS, wordpress use Chinese Tag permalink
- Author: BOSSMA.CN
- Author URI: http://blog.bossma.cn/
- Version: 1.2
- */
- add_action(‘init’, ‘bossma_get_urf8_pathandurl’);
- add_filter(‘get_pagenum_link’,’bossma_set_utf8_pagenumlink’);
- add_action(‘parse_query’,’bossma_chinese_tag_encode’);
- //iis encoding the url with GBK,but wordpress with utf-8
- function bossma_get_urf8_pathandurl() {
- $_SERVER[‘PATH_INFO’]=iconv(“GBK”,“UTF-8”,$_SERVER[‘PATH_INFO’]);
- $_SERVER[‘REQUEST_URI’]=iconv(“GBK”,“UTF-8”,$_SERVER[‘REQUEST_URI’]);
- }
- //urlencode for chinese tag
- //sometimes preg_match can not match the chinese correctly
- function bossma_chinese_tag_encode($query){
- if(isset($is_tag)&&$is_tag){
- if($query->query_vars[‘tag’]!=”){
- $query->query_vars[‘tag’]=urlencode($query->query_vars[‘tag’]);
- }
- }
- }
- //for generate tag pagenum link
- //use utf8 encode
- function bossma_set_utf8_pagenumlink($result){
- $tag_index=stripos($result,“/tag/”);
- $link_len=strlen($result);
- if($tag_index!==false){
- $link_base=substr($result,0,$tag_index);
- $page_index=strripos($result,“/page/”);
- if($page_index!==false){
- $tag_str=substr($result,$tag_index+5,$page_index–$tag_index-5);
- $result=$link_base.“/tag/”.rawurlencode($tag_str).substr($result,$page_index);
- }else{
- $tag_str=substr($result,$tag_index+5);
- $result=$link_base.“/tag/”.rawurlencode($tag_str).“/”;
- }
- }
- return $result;
- }
来源:https://mkblog.cn/1049/