wordpress不支持中文標簽的原因是因為編碼問題,我們只要把編碼轉換在gbk就可以解決了,但想完美解決我們可以嘗試使用url rewrite來實例.
首先,產生中文tag鏈接無法打開或者找不到博客文章的原因在于WordPress不支持中文的編碼,那我們就需要強制讓WordPress能支持中文的編碼形式,即UTF-8和GBK編碼。
修改方法,首先修改WP-include中的classes.php文件(需要使用用專門的PHP編輯器工具,推薦EditPlus),將第47行和第52行代碼進行修改.
第47行原代碼:
$pathinfo = $_SERVER['PATH_INFO'];
替換為:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8“, “GBK“);
第52行原代碼:
$req_uri = $_SERVER['REQUEST_URI'];
替換為:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8“, “GBK“);
修改后,保存下,然后將保存后的classes.php文件上傳并覆蓋原文件即可.
另一種辦法
以下是wordpress 3.3的修改方法,(3.5版本的也通用的,不過代碼是在1039行)
此方法只針對Windows服務器,Linux未測試過。
打開 wp-includes/rewrite.php,找到第1000行,【3.5版本在1039行】把:
if ( empty($this->permalink_structure) )
注意:此文件下有很多的“if ( empty($this->permalink_structure) )”,需修改的是位于第1000行,“function get_extra_permastruct($name)”函數下的那一個,替換為:
if ( !empty($this->permalink_structure) )【
其實就是用“!”屏蔽了錯誤】
注意:別用windows自帶的記事本修改(推薦UltraEdit,Dreamweaver等)。
IIS上不能支持中文
在網上看了幾種解決方案,不過鄙人還是比較支持IIS對中文url解析的問題,找到問題,修改起來就快多了.
打開wp-includesclasses.php文件,找到舊代碼:
- if ( isset($_SERVER['PATH_INFO']) )
- $pathinfo = $_SERVER['PATH_INFO'];
- else
- $pathinfo = ”;
- $pathinfo_array = explode(‘?’, $pathinfo);
- $pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
- $req_uri = $_SERVER['REQUEST_URI'];
改成以下如下代碼:
- if ( isset($_SERVER['PATH_INFO']) )
- $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], “UTF-8″, “GBK”);
- else
- $pathinfo = ”;
- $pathinfo_array = explode(‘?’, $pathinfo);
- $pathinfo = str_replace(“%”, “%25″, $pathinfo_array[0]);
- 8.$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], “UTF-8″, “GBK”);
新聞熱點
疑難解答
圖片精選