如何解决wordpress中文标签404错误以及无法翻页的问题-砝码网

如何解决wordpress中文标签404错误以及无法翻页的问题

在我们使用wordpress的时候会发现一些小问题,因为wordpress是外国程序,对中文兼容问题还是存在一些小毛病,就比如 WordPress 使用中文标签链接打开,提示“404 页面未找到”。

如何解决wordpress中文标签404错误以及无法翻页的问题插图

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

解决方法一

1.使用下面这个插件,就可以彻底地解决了这个问题!

插件名称:IIS Chinese Tag Permalink

解决方法一

1.如果不想装插件,可以直接把以下这段代码扔到主题的 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;  
}  

以上两种方法都可以解决wordpress中文标签404错误以及无法翻页的问题,更多网站模板、建站教程、建站技巧可以关注360模板吧,我们会不定期分享更多好玩的代码、源码、教程等。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享