LifeType 1.2.x 轉到 Wordpress 2.6

edited 十月 2013 in 個人資訊管理
因為部落格站沒有其他人想要用了,最近也被一堆廣告訊息吵的很煩,於是開始想著要整頓一下;同時也發現,原來資料庫裏面的資料是有問題的,雖然使用 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 ,也許過兩天再正式導入吧。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3542

評論

  • edited 七月 2008
    再改一下,把
    $ret_id = wp_insert_post(array(
    							'post_date'			=> $date,
    							'post_date_gmt'		=> $date,
    							'post_author'		=> $authorid,
    							'post_modified'		=> $date,
    							'post_modified_gmt' => $date,
    							'post_title'		=> $topic,
    							'post_content'		=> $text,
    							'post_status'		=> $post_status,
    							'comment_status'	=> $comment_status,
    							'post_name'			=> $post_name,
    							'comment_count'		=> $comments_count)
    							);
    
    改成:
    $wpdb->insert($wpdb->posts, array(
    				            'id'				=> $id,
    							'post_date'			=> $date,
    							'post_date_gmt'		=> $date,
    							'post_author'		=> $authorid,
    							'post_modified'		=> $date,
    							'post_modified_gmt' => $date,
    							'post_title'		=> $topic,
    							'post_content'		=> $text,
    							'post_status'		=> $post_status,
    							'comment_status'	=> $comment_status,
    							'post_name'			=> $post_name,
    							'comment_count'		=> $comments_count));
    				    $ret_id = (int) $wpdb->insert_id;
    

    沿用舊的 ID ^^
  • edited 七月 2008
    轉換後再補上 rewrite 設定
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^post/1/(.*)$ /$1 [R=301,NC,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    

    除了 WordPress 本身的 ReWrite 外(自訂結構:/%post_id%),也把過去的 LifeType 文章轉向到新的位置。

    所以...
    http://blog.twpug.org/post/1/111

    就會自動轉到
    http://blog.twpug.org/111

    搞定,其他的再說,睡覺去。
Sign In or Register to comment.