最近我把網站架設工具,從Movable Type換成了WordPress,從活字版印刷術,換成文字印刷術。在Movable Type 推出3.0版,同時修改了授權規則的同時,不少人也便同時紛紛更換了系統,比方說在Slashdot上,就有人 說 ,換成WordPress是最好的選擇,而國外一些重量級的個人網站,例如曾經撰寫〈深入親和力〉(Dive into Accessibility,Jedi曾經將這本線上書籍翻譯成中文)、Dive into Mark的站台維護者Mark Pilgrim,也將系統換成了WordPress,Mark在上週五寫了一篇Freedom 0 ,說明了他為什麼要換成WordPress,此舉似乎有相當的指標意義。
在網路上有相當多說明如何將原本以Movable Type架設的站台,轉換到WordPress的相關英文文件,例如Carthink.net上面的這篇Moving from MovableType to WordPress不過因為是英文的,所以很多與中文相關、使用英文之的其他語文會遇到的問題,網路上目前的文件,並沒有多少的著墨。在此簡單介紹在將Movable Type轉換成WordPress需要注意的一些事項。
首先,你要確定的是,你到底適不適合使用WordPress。我改用WordPress的原因是,我個人比較不偏好Movable Type在發表文章或迴響留言時,需要一再的重建頁面,特別是,如果同一份資料,您需要用非常多、各種不同的格式呈現、交換的話,那麼,在重建頁面的時候需要花上相當多的時間,比方說我之前的系統同時提供 RSS 1.0、 RSS 2.0、Atom 0.3、給 IE 瀏覽器使用的Active Channel、以及給蘋果電腦上的行事曆軟體iCal使用的交換規格,另外在首頁上面有一個會說話的「公仔」,「公仔」說的話也是用重建頁面的方式更新,每次發表新文章,通常重建所有頁面,可能要半分鐘之久,另外也經常會遇到重複發表迴響的問題。使用以 PHP 動態頁面方式的系統,不需重建,對我而言方便許多。
然而,WordPress在華人地區,相關支援較少,如果您遇到了任何問題,可能不見得會有人能夠幫忙,所以如果您本身在閱讀英文文件有困難的話,那麼使用WordPress,會有一些語文方面的門檻限制。另外,WordPress只提供單一的網誌站台系統,如果您想要用同一套系統,同時架設多個網誌站台,讓多人同時一齊使用的話,那麼,不妨考慮像是pLog等其他系統,但是,如果您的需求就是建立單一的網誌的話,那麼WordPress的設計,有著相當大的修改彈性,可以改出符合自己需求的功能。而要安裝WordPress,您的主機必須要能夠支援PHP4以及MySQL資料庫。
目前最新釋出的WordPress是還在beta階段的1.2 RC1,1.2正式版應該會在不久之後推出。WordPress 1.2將預設的編碼方式改為UTF-8,同時也修改了在1.0時中文迴響的一些臭蟲,同時也修改了修正HTML entity的方式,不需要像之前要用關閉html_trans選項,才不會將中文變成一片亂碼的狀況,所以,如果您安裝WP 1.2版的話,那麼在安裝完之後,便可以直接使用中文。1.2版支援多國語系,不過正體中文的語系檔案還沒有人去製作,所以介面都還是使用英文。
安裝WordPress
要將Movable Type轉換成WordPress,首先就是要先安裝一套WordPress系統(廢話),這邊就不多說了,就是下載WordPress系統,在MySQL資料庫中新增一個資料庫,然後修改wp-config.php,連到wp-admin/install.php,然後就裝完了。詳細說明可以參見Jedi的這篇文章〈築一個部落格的夢 ─ 挑選及安裝部落格系統〉,以及這篇〈WordPress 1.0.2安裝方式及中文支援修改〉。
匯入Movable Type當中的文章
請進入Movable Type的管理介面,然後選擇匯入匯出功能,將網站當中原本的資料,匯出成文字檔案,比方說,叫做mt.txt,然後將這個文字檔案上傳到您安裝WordPress的主機上,放到wp-admin/目錄底下。
然後,用您喜歡的文字編輯器,打開wp-admin/import-mt.php檔案,找到第二行的內容:
define('MTEXPORT', '');
改成:
define('MTEXPORT', 'mt.txt');
然後再用瀏覽器,開啟http://example.com/wp-admin/import-mt.php,就可以將原本系統中的文章匯入了。而在安裝以及匯入資料完成之後,建議您刪除install.php,以及其他以import開頭的檔案。
設定permalink,以及重新轉址
你現在已經成功將資料轉換到WordPress了,但是你網站之前的內容可能已經被搜尋引擎蒐集了起來,別人如果用搜尋引擎,連到您之前的頁面,可能在轉換系統之後就連不上了。所以我們必須要想辦法,將其他人從原本的網址,自動轉向到新的網頁上。而在設定轉址之前,你要先設定WordPress的網址規則。
WordPress是PHP程式,所有頁面的呈現,都是靠從網址中傳入參數到index.php上,決定要列出那篇、那天或那個分類的文章,所以剛裝好的系統,點到某天文章時,應該會出現index.php?p=1之類的網址。從WordPress 1.0開始,提供較為美觀的網址呈現方式,方法是使用Apache所提供的mod_rewrite。您可以在網站目錄中放置一個叫做.htaccess的檔案,在檔案中設定一些語法,將某個網址當中的內容,轉換成傳給index.php可以使用的參數。要進行WordPress的網址規則設定,請到Options底下的Permalink,在這裡提供一些標籤,可以用來組合成您需要的網址規則。因為WordPress無法將中文的標題轉換成供網址使用,所以建議將規則設定成:
/archives/%year%/%monthnum%/%day%/%post_id%/
之後,系統會產生一段規則語法,請將這段語法複製到您的.htaccess檔案中。
然後,我們要設定Movable Type文章與WordPress之間的轉址,請進入Movable Type管理系統,建立一個新的索引模板,然後輸入以下內容:
<MTEntries lastn="999999">
Redirect Permanent /archives/<$MTEntryID$>.html http://www.example.com/archives/<$MTArchiveDate format="%Y/%m/%d"$>/
</MTEntries>
example.com是您安裝WordPress的網站名稱,請依照實際狀況修改。在重建 MT 頁面後,將這個模板所產生的頁面內容,複製到.htaccess當中,如此,當有人連到舊頁面後,就會連到新頁面上,不過在這邊有一些小限制,如前所述, WP 無法將中文標題處理成網址使用,所以按照Matt原本的作法,可以用指定到新系統的文章標題的方式,準確指定到該篇文章,而用我寫在這裡的作法,則會在轉址之後,指定列出到該篇文章發表日期同一天的所有文章的列表頁面上(不過,如果你不會經常一天發表許多文章的話,便可以確實指定到新系統上的該篇文章了)。
而如果其他人,是透過搜尋引擎,找到您的分類彙整頁面上的話,而您在轉換前後的分類名稱,都是使用英文,您也可以在 .htaccess 檔案中,加上:
RewriteRule ^archives/cat_?(.*).php /index.php?category_name=$1 [QSA]
RSS新聞交換的問題
您可能將之前的系統註冊到一些新聞交換網站,例如台灣部落格或Meerkat等網站,讓這些網站定時抓取index.rdf檔案,在更新系統後,希望這些網站還可以繼續定時抓取新聞的話,請在.htaccess當中加入這一行:
RewriteRule ^index.rdf /wp-feed.php?feed=rdf [QSA]
Pingback: Dante's Blog » MT2WP
Zonble 一路走來,始終如一的熱忱心腸.Y
佩服!佩服!佩服!
還是弄不清楚日文的多國語文版和官方1.02版對中文的有支援有什麼不同。還請賜教。
(還有一點,當官方1.2版是不是會和日文多國語言版整合呢?)
從1.02到1.2,WP持續強化中,讚!
Pingback: >>blancha<<
Pingback: 發言 Speak OUT
日文的多語版發文會亂碼。改用wp官方的1.2版就沒問題。
記得把html_trans關掉啊。
很好啊。拍手,拍手。
不過我還是改為官方版,因為日文版的圖示下載很費時間,而且我也砍了。
對了,在匯入mt的文章時,我發現1.2版支援多作者,它會把匯入的文章自動寫為新作者,要怎麼作才能把它弄成admin帳號的文章,目前我是硬幹,把資料庫內的新作者的資料統統改成像admin一樣。這樣讓秀出來的資料像admin發的一樣。不知可有解決之道?
另外,我發現匯入的文章也沒trackback-url,這是正常的吧。我看你以前的文章也是一樣。可以修嗎?
Pingback: Yus @logs
meerkat好像抓的是rdf格式,所以應該是指向wp-rdf.php就可以了。
天哪,答案竟然出乎意料的簡單(倒)
實在太感謝了,縈繞心頭許久的問題終於獲得解決,相信便秘與失眠等症狀也將跟著一併解除XD
Pingback: 小隆網管日誌
Pingback: 記憶盒子
Pingback: Peko-ism » wordpress/meerkat handshake
Pingback: 风のBlog » 从Movable Type转移数据到WordPress,累坏了我。
Pingback: MT2WP « Khwooo’s Weblog