當wordpress遇到中文分類目錄,完美解決404!

這個問題是幾年前遇到的了,如今回過頭再來看,當初的這個解決辦法確實有些草率——因為我忽略了一個重要的因素,那就是編碼問題。

按照這篇文章的辦法解決之後確實好使——前提是你必須在博客內點擊才有效,但是一旦你遇到了類似這樣的抓取連接:

http://www.logcg.com/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80

雖然點開之後瀏覽器的地址欄裡顯示的仍舊是中文,但此中文卻早已非彼中文了。編碼不同導致的直接結果就是——404!

難怪當時第一個評論回复的是無效呢!呵呵。

那麼究竟該怎麼解決呢?我想,最完美的辦法恐怕還是使用別名的方式了,分類目錄使用中文,但是WordPress還是提供了分類目錄的別名選項,你可以將別名設置為拼音,或者英文簡寫,甚至乾脆就是英文單詞也是可以的,這樣,就里外全部都兼容啦。


 

 

我猜這個問題應該是每個用WordPress的都會遇到的吧?我居然這麼久都沒有發現,汗〜

當wordpress遭遇中文分類目錄的時候,就會出現404,而把分類改成英文就能夠打開,這大概是因為頁面靜態化造成的吧。可是要把每一個分類都英文化這樣又會讓讀者看著眼暈——誰喜歡鳥語啊哈哈

所以,還是找到了另一種解決辦法,我用這個辦法完美解決,主要是參考了這裡

解決辦法很簡單,就是一個“!”的問題,好了,我們開始。

首先在你博客空間的wp-includs文件夾下面,找到rewrite.php文件,然後做一下備份,我們要修改的內容就在這裡面。

接著打開已經備份過的rewrite.php,在大概1000行的地方找到如下內容,當然,代碼之間灰色的註釋你是應該忽略掉的呵呵。

功能get_category_permastruct() {

返回$這個 - >get_extra_permastruct('類別');

}

功能get_tag_permastruct() {
返回$這個 - >get_extra_permastruct(“post_tag”);

}

功能get_extra_permastruct($name) {
如果 ( 空($這個->permalink_structure) )
返回false;

如果 ( 使用isset($這個->extra_permastructs[$name]) )
返回$這個 - >extra_permastructs[$name][0];

返回false;
}

 

沒錯,我們要修改的就是 if ( ($這個->permalink_structure) )這一行,在empty前面添加一個英文的嘆號,即

如果 ( 空($這個->permalink_structure) )

如果 ( !空($這個->permalink_structure) )

 

然後保存即可:)

由...出版 R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

加入對話

14 註釋

您的電子郵件地址不會被公開. 必填字段標 *

    1. 你說的不錯,但如果是已經運行了好久的博客,再那樣改我想不是一個小工程了,包括收錄等等的都會收到影響。另外,有些分類還是寫成中文比較好看……
      =。=畢竟,是中文博客哈哈:)

      當然了,如果是新博客,用這樣的方法做好規劃也是不錯的!