彻底解决 wordpress 中文标签 404 以及无法翻页问题 | 珊瑚贝

WordPress 是世界上最受欢迎也是最流行的博客系统,不过 WordPress 在中文支持上还存在不少问题,比如 WordPress 中文标签链接打不开,提示“404 页面未找到”。

产生中文 TAG 标签链接无法打开的原因在于 WordPress 不支持中文的编码。之前本博客分享过修改 WordPress 程序代码的方式实现修复这个问题的方法(详见 “wordpress中文标签出现404错误的解决办法”一文),不过这种方法有两个弊端,一是每次 WordPress 升级后又要重新修改文件很不方便,二是没能决绝中文标签的翻页问题

今天“偶然”找到了一个插件(其实找了很久…),终于彻底地解决了这个问题!

插件名称:IIS Chinese Tag Permalink
插件地址:https://wordpress.org/plugins/iis-chinese-tag-permalink/

遇到了同样问题的朋友,直接安装上述插件就行了,如果有“插件强迫症”不想安装插件的,可以直接把以下这段代码扔到主题的 functions.php 中!

  1. /* 
  2. Plugin Name: IIS Chinese Tag Permalink 
  3. Plugin URI: http://blog.bossma.cn/php/in-iis-wordpress-chinese-tag-permalinks-plugin/ 
  4. Description: In IIS, wordpress use Chinese Tag permalink  
  5. Author: BOSSMA.CN 
  6. Author URI: http://blog.bossma.cn/ 
  7. Version: 1.2 
  8. */  
  9. add_action(‘init’, ‘bossma_get_urf8_pathandurl’);  
  10. add_filter(‘get_pagenum_link’,’bossma_set_utf8_pagenumlink’);  
  11. add_action(‘parse_query’,’bossma_chinese_tag_encode’);  
  12.   
  13. //iis encoding the url with GBK,but wordpress with utf-8  
  14. function bossma_get_urf8_pathandurl() {  
  15.     $_SERVER[‘PATH_INFO’]=iconv(“GBK”,“UTF-8”,$_SERVER[‘PATH_INFO’]);  
  16.     $_SERVER[‘REQUEST_URI’]=iconv(“GBK”,“UTF-8”,$_SERVER[‘REQUEST_URI’]);  
  17. }  
  18.   
  19. //urlencode for chinese tag  
  20. //sometimes preg_match can not match the chinese correctly   
  21. function bossma_chinese_tag_encode($query){  
  22.     if(isset($is_tag)&&$is_tag){  
  23.         if($query->query_vars[‘tag’]!=){  
  24.             $query->query_vars[‘tag’]=urlencode($query->query_vars[‘tag’]);  
  25.         }  
  26.     }  
  27. }  
  28.   
  29. //for generate tag pagenum link  
  30. //use utf8 encode  
  31. function bossma_set_utf8_pagenumlink($result){  
  32.  $tag_index=stripos($result,“/tag/”);  
  33.  $link_len=strlen($result);  
  34.  if($tag_index!==false){  
  35.   $link_base=substr($result,0,$tag_index);  
  36.   $page_index=strripos($result,“/page/”);  
  37.   if($page_index!==false){  
  38.    $tag_str=substr($result,$tag_index+5,$page_index$tag_index-5);  
  39.    $result=$link_base.“/tag/”.rawurlencode($tag_str).substr($result,$page_index);  
  40.   }else{  
  41.    $tag_str=substr($result,$tag_index+5);  
  42.    $result=$link_base.“/tag/”.rawurlencode($tag_str).“/”;  
  43.   }  
  44.   
  45.  }  
  46.  return $result;  
  47. }  

来源:https://mkblog.cn/1049/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?