WordPress 2.3 已於前天 (2007/9/25)釋出,中文化語系也大概於昨天釋出,看看情況是該把 WordPress 由 2.1 升級到 2.3 的時候了。雖然直角目前使用的 2.1 在使用及操作上沒有太大問題,但是基於安全性考量,還是將 WordPress 升級為 2.3 為佳。
跟據過去各位前輩升級 WordPress 的經驗來看,最常遇到的兩個嚴重的問題就是:(1)中文變亂碼 (2)資料庫資料遺失或被破壞。非常不幸地,直角都遇到了,所幸有備份資料的良好習慣,加再上好友野部的幫忙,終於順利解決問題,將 WordPress 升級為 2.3 版,特將本次經驗分享出來。
直角跟據網友 Kirin Lin 的「WordPress 2.2 升級」一文,將直角本次升級的經驗整理如下:
- 停用所有外掛
以免因為外掛相容性的問題而造成網頁無法開啟。 - 停用 Apache
為避免有新資料寫入資料庫,請停用 Apache,如果你的 WordPress 是架在代管空間的話,當然就無法停用了!不停用也沒什麼大礙。 - 備份 WordPress
將 WordPress 整個資料夾備份(下載到自已的電腦) - 備份資料庫
一般而言是用 phpMyAdmin 來備份 mySQL 資料庫,當然依據你的環境會有所不同,建議將資料表及內容以匯出 SQL 檔的方式便可,記得匯出格式選 UTF-8 ,並用小作家或 UltraEdit 等軟體檢查匯出的中文字元是否正常。 - 將 WordPress 檔案刪除
一般來說是根目錄(root)、wp-admin、wp-includes,可保留 wp-content 底下的 plugins 與 theme。 - 複製(上傳) WordPress 新版檔案
根目錄(root)、wp-admin、wp-includes、wp-content。 - 安裝中文語系檔
上傳中文語系檔至 /wp-content/languages,記得要在下一個步驟的 wp-config.php 內加入來指定使用中文語系。
- 安裝設定檔
下載新版根目錄的 wp-config-sample.php,填入舊版本 wp-config.php 的相關資料後,更改檔名為 wp-config.php 後上傳。
通常以下這四行就是你的設定資料。define('DB_NAME', '資料庫名稱');define('DB_USER', '資料庫使用者名稱');
define('DB_PASSWORD', '資料庫使用者密碼');
define('DB_HOST', '資料庫位置');
記得要加上步驟 7 的指令後再上傳。
- 進入後端(後台)管理介面
進入後端之後,系統會自動提示你升級資料庫,請依畫面提示點選超連結。

如果沒有出現時,請自行連結到 /wp-admin/upgrade.php - 若是一切正常的話,便可以順利進入後端管理介面。
- 重新啟用外掛
請依次(one by one)啟用外掛,並檢查是否有相容性的問題,看看外掛是否運作正常。有需要時,請自行下載外掛的新版本。 - 重新調整設定
調整 WordPress、外掛、Widgets、Sidebar…等等相關設定,回復之前網誌的設定與樣貌。 - 大功告成
有需要時,請再次備份升級完之後的 WordPress、資料庫、外掛…等資料。
理論上,經過上述的步驟之後,WordPress 就順利升級到 2.3 版了,但是…問題出現了,直角的文章都變成 ??? 的亂碼了,天啊!!!!!!!!!
冷靜!要冷靜!先確定資料庫的資料是否被破壞了,進 phpMyAdmin 檢查。OK!資料是正常的!若有資料被破壞的情況時,用最早備份的資料回復即可。然後再看看畫面上,WordPesss 系統的中文字可正常顯示,變成問號的中文字都是資料庫內的,所以研判應該是中文字在轉碼的時候出現問題了。
看看 Kirin Lin 的文章及網路上其他前輩的經驗,WordPress 由 2.1 升級至 2.2 時,也有中文字變成亂碼的情況,只要在 wp_config.php 內加入
就可以解決問題,但是因為 WordPress 2.3 已自動加入上兩行指令了(請見 wp-config-sample.php),所以問題應該不在這邊,經過野部在線上的幫忙,在 /wp-includes/wp-db.php 內加入如下的指令即可(請參考這篇文章):
請尋找「$this->result = @mysql_query」字串,將上述的指令加在上一行即可,請參考下圖:
OK!重新上傳後,網誌果然可以正常運作,可以享受 2.3 新環境了!
參考資料:
- Kirin Lin - WordPress 2.2 升級
http://kirin-lin.idv.tw/2007_05/16/1199/
- skyfate - WordPress 2.3 正體中文語系(下載)
http://www.robbin.cc/vb/showthread.php?t=1114
- 野部 - 升級 WordPress 2.1 甘苦談
http://www.macroviz.com/wordpress/?p=59
2007/09/29 補充說明:
WordPress 2.3 新增功能可參考下列文章
- ericsk - WordPress 2.3 出來啦~
http://blog.ericsk.org/archives/772
- s9011514 - WordPress 2.3新功能,仔細挖!!
http://sofree.twbbs.org/blog/2007/09/27/310/
WordPress 2.3 下載點 - 官方下載 | 本地下載
WordPress 2.3 中文語系檔下載點 - WordPress歡樂正體中文交流所下載 | 本地下載
2007/11/17 補充說明:
有關資料庫變亂碼的問題,還是有許多網友不得其解,在這邊直角推薦一篇文章,或許可以對網友們有所幫助。


相關主題
6 位網友對本文章作出回應
5、7、8 點有些錯誤:
第5點在刪除檔案的時候 wp-config.php 可以不用刪除,也就是 7、8 兩點可以不用做,不過重新上傳語系檔倒是必須的。
其他都沒什問題,動作也滿正確的,只是中文變成 ??? 小弟倒是還沒遇過。
To 冰漾:
感謝您的指正,事實上,像您這樣有經驗(或許您也懂 php 語法)的人,當然是沒有問題的!但是也有些人是不太了解的,所以我由一個初學者的角度,將步驟寫的詳盡些。
對一個初學者而言,如果 wp_config.php 不刪除,
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', ");
這兩行指令又加入錯誤的地方時,還是會有一定機率造成中文產生亂碼的情況發生。
p.s.直角的朋友就有發生過這種情況。
總之,感謝您的指正,同時也感謝您對本文的關注。^_^
你好
我也是有同樣情形,但我不是資料轉移,而是一開始就使用2.3
使用以上方法問題扔未解決。
但是用舊版本可以出現中文,不知道是什麼原因
To volens:
基本上,上述方法的前提是,資料庫中的資料也都是要 UTF-8 格式才行。一般而言,下列幾個要點,全部都是要在萬國碼(Unicode)的情況下,才不會產生亂碼。
上述六點地方,全部皆需設定為 UTF-8 格式才行,本文所提及的方法僅只於 4,5,6 而已,屬於資料庫的 1,2,3 就必須要您自已處理了。
謝謝,確實是資料庫裡面的問題,校對過後一切都正常了。
To volens:
不用客氣,很高興能幫上忙。
寫下您的意見
請注意:請勿送出與政治、意識型態相關之發言,以免引發不必要之討論。