因為部落格站沒有其他人想要用了,最近也被一堆廣告訊息吵的很煩,於是開始想著要整頓一下;同時也發現,原來資料庫裏面的資料是有問題的,雖然使用 utf8 字集,儲存的格式卻是 latin1 ,所以一併處理。
修正資料庫編碼:
1. 把資料以 latin1 匯出:
mysqldump -uroot -p --default-character-set=latin1 blog > test.sql
2. 編輯匯出的檔案,將 SET NAMES latin1; 改成 SET NAMES utf8;
3. 塞回去:
mysql -uroot -p blog < test.sql
在下面討論中找到個不錯用的工具(plog-importer.zip):
http://wordpress.org/support/topic/31789?replies=28但是實際使用時發現文章帶不進去,所以小小改了一下,把取得文章的部份拿掉 category_id 欄位,附加檔案是已經改好的版本。
開始:
1. 因為這個匯入程式無法依據使用者區分文章,所以一開始需要將自己以外的資料清除;透過資料庫直接處理:
DELETE b.*, a.*, c.*, t.*, l.*
FROM plog_blogs AS b
LEFT JOIN plog_articles AS a ON a.blog_id = b.id
LEFT JOIN plog_articles_comments AS c ON c.article_id = a.id
LEFT JOIN plog_articles_text AS t ON t.article_id = a.id
LEFT JOIN plog_article_categories_link AS l ON l.article_id = a.id
WHERE b.id != 1;
DELETE FROM `plog_articles_categories` WHERE `blog_id` != 1;
DELETE FROM `plog_users` WHERE `id` != 1;
2. 將 WordPress 安裝好,接著解壓縮 plog-importer.zip 後把 plog.php 放到 wp-admin/import
3. 登入 WordPress 後點選 "管理" => "匯入" => "pLog"
4. 依據引導一個一個操作即可
只是這個匯入程式會有下面問題:
1. 因為沒有對應使用者,所有文章都會變成管理者的
2. 資料重建,所以舊的 ID 無法對應,這會造成一些舊的連結失效
3. 媒體庫的資料沒有匯入
目前還在 try ,也許過兩天再正式導入吧。