如何解决wordpress的中文标签Tag链接打不开?四种方法帮你搞定
如果你是iis服务器可能会碰到点击中文标签,提示404错误或者找不到页面。针对wordpress最新版也能解决
1,首先你需要确认网站是否做rewrite ,如果没有请先先rewrite
2,如果你是3.2以前的版本请按照下面的办法
修改wp-includes目录中的classes.php,3.2以上的则改classe-wp.php代码如下
$pathinfo = $_SERVER[‘PATH_INFO’];
替换为:$pathinfo = mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8″, “GBK”);
将
$req_uri = $_SERVER[‘REQUEST_URI’];
替换为:
$req_uri = mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8″, “GBK”);
那么下面你只需要修改wp-includes目录中的link-template.php文件的(1425行左右)将
$result = $base . $request . $query_string;
替换为
$result = $base . mb_convert_encoding($request, ‘UTF-8’, ‘GBK’) . $query_string;
这种方式替换后的tag翻页里面含有中文,不符合url标准,不太利于搜索引擎收录,建议采用下面方法解决。
3,如果是3.9的版本,改的代码少有不同
在wp-includes目录中的classe-wp.php,搜索找到
$pathinfo = isset( $_SERVER[‘PATH_INFO’] ) ? $_SERVER[‘PATH_INFO’] : ”;
改为:
$pathinfo = isset( $_SERVER[‘PATH_INFO’] ) ? mb_convert_encoding($_SERVER[‘PATH_INFO’], “UTF-8″, “GBK”): ”;
将
list( $req_uri ) = explode( ‘?’, $_SERVER[‘REQUEST_URI’] );
改为
list( $req_uri ) = explode( ‘?’, mb_convert_encoding($_SERVER[‘REQUEST_URI’], “UTF-8″, “GBK”) );
4,在模板文件的functions.php中加入下列代码
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;
}
原创文章,转载时必须以链接形式注明本文来自云中客,本文固定链接:http://vr.ccyzk.com/324.htm