2012年5月22日星期二

WordPress to Blogger 搬家全攻略 Part.1

用了Blogger都差不多快一個多月,而Host WordPress網存那邊今晚就是到期日,如無意外幾日後應該看不到我的舊Blog。
之前說過會公開我搬家過程和工具,趁現在記憶還清晰,寫一下,內容比較長。

簡單來說,我們要做的就是把WordPress所有Posts和Comments搬至Blogger,而圖片上傳到Picasa 網路相簿,當中有幾個要點。
  1. 把所有外連的圖片下載回來。(選擇性,但既然Picasa提供無限儲存空間 - 參考Google Picasa Web 無限儲存空間,我想不到有其他更好的選擇,作為長久地上傳圖片,即使是DropBox都比不上。)
  2. 清理WordPress資料。
  3. 利用工具在WordPress的Export檔案中進行字串替換。
  4. 把所有圖片移至單一資料夾,並確保檔案名稱是單一不重覆,因為之後我們會以檔案名稱去辨認並替換WordPress中的圖片連結。
  5. 上傳圖片至Picasa 網路相簿
  6. 利用工具軟件把Picasa相簿的圖片連結替換至WordPress XML中。
  7. Import至Blogger,完成。

就是這5個要點,如果你的WordPress Blog文章不到幾百篇還好,要是好像我過1200篇的話,事情不是那麼簡單了。
我可花了一個月時間,約三十多個小時去做後續整理的。


開始之前,老生常談,Backup你WordPress的Database和wp-content資料夾,以防萬一。
然後一步一步跟著我做。

Step 1. 下載外連的圖片
重申一次,這是選擇性動作,若果你肯定外連圖片沒有消失,或者你不介意Browser出現"叉燒包"的話,就可以省卻這一步。
要下載這些圖片,可以借助WP一個Plugin - Cache Images,它可以助你快速下載這些圖片,使用方法可以自己看看,很簡單的。要是下載不了的圖片,不要勉強,因為可能已經是斷Link或者防Hotlink了。
盡你所能補完所有圖片後,去下一步。

Step 2. 刪除所有Thumbnails
這同樣是選擇性動作,因為WordPress的內建的上傳功能是會自動建立縮圖,你可能有用,或者沒有用。
如果你是有用縮圖的話,我建議你不要刪除,或者到完成後再花時間搞都可以。(之後會說)
相反要是你跟我一樣,從來不用縮圖的話,(例如自行設定width x height),那你現在可以把WP圖片資料夾中的filename-[YYY]x[ZZZ].jpg全部刪除,因為當上傳至Picasa後,同樣會建立縮圖。


Step 3. 修補連結
Step 1.和Step 2.都是在搞圖片的東西,到現在你可以把你的WP Blog重新由頭到尾看一次,圖片有斷Link,看看你是刪除它,找其他圖片替換還是怎樣。可能到這裡你會說 : ( 煩死了! )
但相信我,你現在檢查一次,比你匯入至Blogger後才修補來得易,因為下來你可以用的的軟件去替換連結,匯入後,你就要人手做了。

Step 4. 圖片搬運
WordPress預設會把你的圖片根據時間去用"/yyyy/mm/"的資料夾名稱分開放置,現在我們要把它全部放在一個資料夾之中。
這一步你人手做是可以的,但大量的話可以在Windows用CMD命令去做。
參考 : DOS command to move all files in subdirectories one level up
假設我WordPress圖片資料夾是"C:\images",而目標資料夾是"C:\target" (自行新建)。
做之前確保資料夾路徑不能含有空白。
在Windows中的執行打CMD按Enter後,輸入以下 :
cd C:\images\
按Enter,然後再輸入
for /r %A in (*.*) do move /-y %A "C:\target\"

便會自動地把所有圖片歸納為同一個位置,如果圖片名稱相同,系統會問你是否覆寫,緊記選不要。
完成後,把相同名稱的圖片重新命名,再去相關的Blog Post修改連結。

如果想快速找尋圖片是在什麼Post,可以用SQL搜索 :
SELECT *  FROM `wp_posts` WHERE `post_content` LIKE '%my_images_name%';

可能你會擔心,改變圖片位於後,WordPress便會有很多圖片失效。
是的,之後我們便會用軟件修復。

最後你會得到一個資料夾包含你所有的圖片,先放在一邊,之後會用到。



Step 5. 清理WordPress資料庫
為了只輸出Blogger所需要的資料,而且盡量把資料大小減少,可以進行一次大掃除。
- 刪除Attachments
用PHPMyAdmin等等,運行SQL :
DELETE FROM `wp_posts` WHERE post_type='attachment';
當然你也可以在Dashboard > Media > Library 刪除,前者只是比較快的方法。
這不會刪除你實際的圖片,只是Blogger並不需要你attachment的資料。
- 刪除Drafts
Dashboard > Posts > All Posts 裡,把Drafts也一併清理吧。緊記要再按[empty trash]才算是完全清除。
- 刪除Spam
Dashboard > Comments > All Posts 裡,把Spam和Draft 跟上面一樣清理。在Pending未Approved的Comments現在好做了。
- 刪除revision
revision即是你Post和Page的History,不用保留吧。
用PHPMyAdmin等等,運行SQL :
DELETE FROM wp_posts WHERE post_type = 'revision';

Step 6. 匯出WordPress XML
現在你的WordPress已經準備好了,在Dashboard > Tools > Export裡選[All content],再按Download Export File。


Step 7. 轉換WordPress XML
Blogger並不支援直接匯入WordPress輸出的XML檔案,需要做一個轉換。
把你Export出來的XML,去 http://wordpress2blogger.appspot.com/做一次轉換。需要注意的是,只支援1MB以下的XML檔案,所以為什麼我之前要花那麼多功夫去減省不必要資料。
最終你得到一個Blogger所需的XML檔案,先放在一邊,不要理它。

Step 8. 上傳圖片至Picasa
經過漫長的準備功夫,你現在有一個含有所有圖片的資料夾,一個WordPress的XML,現在才是來真的了。
首先把資料夾上的圖片,全部上傳至Picasa 網路相簿,Picasa一本相簿最多容納1000張圖片,爆滿的話,不用怕,上傳至另一個相簿資料夾。
你可以下載桌面版本的Picasa Sync上傳,比較快,但是桌面版不支援動態GIF,用Web上傳就可以,自行判斷吧。
Can't I see the animated gif in picasa?
Animated GIF files will not animate in Picasa.

上傳完成後,其實你可以刪除圖片資料夾,因為圖片已經在Picasa上,之後亦不需要使用。

經過多個步驟,現在相信你先要休息一下....
休息完後,去下一Part吧。
WordPress to Blogger 搬家全攻略 Part.2

沒有留言:

發佈留言