Tag/WordPress

MT3.3からWordPress2.5への移行時に行った事

メモ代わりに。

移行する際に気になるのがパーマリンクの保持。

ようは以前と同じURLで移行しないとダメだよねって事で、

色々と調べてみたが最新の2.5対応が無かったorz

でもやる事としては、同じだよね。


  1. パーマリンクの保持

  2. タグの保持

  3. RSSフィードのURLの保持

  4. トラックバックとコメントの保持


位かな。

4のトラックバックとコメントはそのままデータをインポートすればOKで、

3のRSSフィードはMTのRSSのURLを.htaccessでリダイレクトしてやるなどで、

対処出来そう。

ただ1のパーマリンクと2のタグがやっかいだった。

そこで参考にしたのが、

ググったら絶対上位に出てくるサイト

MovableTypeからWordPressへのURL込みの移行方法

ここが解りやすいので、参考にさせていただきました。

まずやる流れが下記になる。

  1. WordPressのインストール

  2. WordPressのパーマリンクの設定

  3. MovableTypeへのパッチ

  4. WordPressへのパッチ

  5. MovableTypeからデータをエクスポート

  6. WordPressへデータをインポート


1.WordPressのインストール

WordPressの日本語サイトから最新バージョンの2.5をダウンロードしてくる。

インストール作業自体は以前のバージョンよりも全然簡単になっているので、

WordPress日本語版のインストールを見れば簡単にサクっと出来るはず。

2.WordPressのパーマリンクの設定

インストールが完了したらパーマリンクの設定になるので、

wordpress管理画面01



にあるタブから「設定」を選択して「パーマリンク設定」を選択する。

そうすると「一般的な設定」に「カスタム構造」というのがあるので、それを選択する。

設定内容は下記になる。

/%year%/%monthnum%/%postname%.html

この「カスタム構造」は「.htaccess」を使用するため書き込み権限が無いとダメみたいです。

その場合、ガイダンスが表示されるみたいなのでそちらの指示に従ってください。

3.MovableTypeへのパッチ

こちらは、MovableTypeからWordPressへのURL込みの移行方法参考にするのが一番良い。

実際にも記載されている通りにやりましたので、一応書いておきます。

mt(MTをインストールしたディレクトリ)/lib/MT/ImportExport.pmファイルの541行目へ追加を行う。

丁度540行目にある

DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>

の下に

PERMALINK: <$MTEntryPermalink$>
<MTEntryIfTagged>
TAGS: <MTEntryTags glue=","><$MTTagName$></MTEntryTags></MTEntryIfTagged>
ID: <$MTEntryID$>

を追加する。

4.WordPressへのパッチ

これは何処にも載っていなかったが、

以前のバージョンへの対応を見れば簡単に解る。

ファイルは色々なサイトに記載されている通り

wordpress/wp-admin/import/mt.php

になる。

このファイルの丁度325行目に追加する。

以前のバージョンでは「PHPのSwitch」で処理されていたみたいだが、

最新は「ifとかelseifとか」で処理されてたw

} else if ( 0 === strpos($line, "PERMALINK:") ) {
$value = trim( substr($line, strlen("PERMALINK:")) );
$tmpvalue = strrchr($value,"/");<br />
$post->post_name = substr($tmpvalue, 0, strpos($tmpvalue, "."));
この4行を追加する。

なぜこの4行を追加するかと言うと、

DBへインポートする際に「wp_post」テーブルのカラム「post_name」へMTの記事データのタイトルが入ってしまうため、記事とURLのつながりが無くなってしまう為にパーマリンクがちゃんと保持されないという現状になるみたいです。

なので、上記を追加する事で正常にデータがインポートされます。

5.MovableTypeからデータをエクスポート

次に記事データをエクスポートします。

MovableTypeの管理画面のメニューから「読み込み・書き出し」を選択する。

上記タブから「エントリーの書き出し」を選択する。

最後に「~からエントリーを書き出す」ボタンをクリックするとデータが「.txt(テキスト形式)」で保存されます。

中身は、
AUTHOR: kishi-r
TITLE: 最近読む著者たち
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: __default__
ALLOW PINGS: 1
PRIMARY CATEGORY: Book
CATEGORY: Book

DATE: 12/04/2006 09:49:02 PM
PERMALINK: http://kishi-r.com/2006/12/post_4.html
TAGS: book
ID: 8
-----
BODY:
・石田衣良
ご存知、池袋ウエストゲートパークを書いている人
他にも結構面白い本が沢山ある。
例えば、「4TEEN」「うつくしい子ども」「エンジェル」「ブルータワー」などがおもしろかった。
一番グっときたのは「ブルータワー」です。
簡単に説明すると内容はSFなんですが、
現代と自分の頭の中の世界を行き来し、世界を救うという話です。
それぞれ登場するキャラが個性的でおもしろい。
映画化すると結構人気がでるかもしれない。
他の作品も是非読んで欲しい。

・・・・・・・・以下続きます。

って感じで保存されているはずです。

6.WordPressへデータをインポート

最後にWordPressへデータをインポートします。

管理画面から下記画面にある「管理」を選択します。

wordpress管理画面02

その中にある「インポート」を選択します。

そうすると色々なブログの選択項目が出てくるので、ここから「MovableTypeとTypePad」を選択します。

次に「自分のコンピュータからファイルを選択する」で先ほどエクスポートしたファイルを選択して、

真ん中にある「ファイルをアップロードしてインポート」ボタンをクリックすれば自動でインポートされます。

これでパーマリンクへの対応は完了です。

このブログ自体も上記の手順で移行しました。

RSSのフィードもさくらインターネットであれば、リダイレクトも出来たので多分OKなのかな?

タグに関してはまた試してみて記載しようと思います。

Posted at: 
2008/04/20 22:59:00
0 Comments
0 TrackBacks
Tags: 
PHP
WordPress
Trackback: 
http://kishi-r.com/2008/04/20/mt33%e3%81%8b%e3%82%89wordpress25%e3%81%b8%e3%81%ae%e7%a7%bb%e8%a1%8c%e6%99%82%e3%81%ab%e8%a1%8c%e3%81%a3%e3%81%9f%e4%ba%8b/trackback/

MT3.3からWordPress2.5へ移行

ブログを移行しました。

RSSフィードのURLがどうしても変わってしまうので、

困り果ててるっすorz

登録されている方はお手数ですが、

下記へ変更宜しくお願いいたします。

http://kishi-r.com/feed

以前のURLには新しいURLへリダイレクトを掛けているので、

見れている方は当面は平気なはずです。

Posted at: 
2008/04/20 10:10:38
0 Comments
0 TrackBacks
Tags: 
Movable type
WordPress
Trackback: 
http://kishi-r.com/2008/04/20/mt33%e3%81%8b%e3%82%89wordpress25%e3%81%b8%e7%a7%bb%e8%a1%8c/trackback/

WordPressローカル環境でのバグ

社内案件でWordPressを使うため
ローカル環境へインストールしたのですが、

あなたはこのページにアクセスする権限を持っていません

なんて出てしまう。
出た画面は管理画面にログインした後の画面から。

原因は、
権限データの問題らしいです。
Googleさんに聞いたら結構出てきました。
解りやすかったのが、

http://wordpress-guide.com/2006/11/11/capabilities/
http://www.odysseygate.com/archives/769

を参照しました。
解決方法は修正用パッチを使えば簡単に出来ました。

ここからファイルを落として解決っす。
やり方も記載されていたので、
このページさえ解れば速攻出来ます。

とりあえず解決出来て良かったっす。

Posted at: 
2008/01/18 23:19:48
0 Comments
0 TrackBacks
Tags: 
WordPress
Trackback: 
http://kishi-r.com/2008/01/18/wordpress/trackback/

django-wordpress-adminを使ってみる

以前書いた記事

MovableTypeのバックアップ

tokibitoさんからコメントを頂き知った

django-wordpress-admin

こいつを使って、

今のMovableTypeのブログをDjango

移行しようと考えてみました。

django-wordpress-admin

GoogleCodeで公開されています。

ここからどうぞ

django-wordpress-adminの中身は、

django-wordpress-admin-read-only/
readme.txt
wordpress/
__init__.py
__init__.pyc
models.py
models.pyc
views.py

内容としては、
models.pyWordPressのDB構成で書かれている。

実際に試してみた。

とりあえずは、

1. MovableTypeがDBを使っていないため、テキスト形式でバックアップ。

2. WordPressをインストール

3. MovableTypeのバックアップファイルをWordPressのDBへインポート

これすごい!ちゃんとインポートされる。すごく気持ちがいいw

4. WordPressに入れたデータをmysqldumpする。(CREATE文が入っているもの)

5. Djangoでプロジェクトを作成(今回は仮でweblogとする。)

6. アプリケーションを作成(今回は仮でblogとする。)

この後、
django-wordpress-admin-read-only/wordpress/以下をモデルの下へコピーし、
settings.pyINSTALLED_APPSに「6」で追加したアプリケーションblogを追加。
他にもadminなんかも追加しておくので、
settyngs.pyINSTALLED_APPSは下記のようになる。
INSTALLED_APPS = (
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.markup',
 'django.contrib.admin',
 'weblog.blog',
)

それからsyncdbを叩くと、DBがちゃんと作成されない。。。。。

./manage.py sql blog

で確認してもちゃんとCreateTableしているのに。。。

で何が足りないか?

・ テーブル(wp_post2cat)
・ wp_postsテーブルのカラム(comment_status)
・ wp_postsテーブルのカラム(ping_status)
・ wp_postsテーブルのカラム(post_status)
・ wp_postsテーブルのカラム(post_password)

これが足りないorz

なので、

INSTALLED_APPSへはアプリを追加せずに実行する。

7. 「6」で追加したアプリケーションをコメントアウト
INSTALLED_APPS = (
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.markup',
 'django.contrib.admin',
# 'weblog.blog',
)

8. 先ほどsyncdbをしたので、一度DBをドロップしてから再作成。

9. mysqldumpをDBへ流し込む。
※ CREATE文が入っているものであれば、models.pyと同期が取れるので。

10. 「7」でコメントアウトしたアプリケーションのコメントアウトを外す。

11. django-wordpress-admin-read-only/readme.txtに書いてある通りにテーブル名を変更する。
ALTER TABLE `blog`.`wp_post2cat` RENAME TO `blog`.`wp_posts_categories`;

ALTER TABLE `blog`.`wp_link2cat` RENAME TO `blog`.`wp_links_categories`;

12. models.pyも11に伴い変更する。

47行目
categories = models.ManyToManyField(Category, db_table=u'%swp_link2cat' % WP_PREFIX, filter_interface=models.HORIZONTAL)

を下記に変更する。
categories = models.ManyToManyField(Category, db_table=u'%slinks_categories' % WP_PREFIX, filter_interface=models.HORIZONTAL)

122行目
categories = models.ManyToManyField(Category, db_table=u'%swp_post2cat' % WP_PREFIX, filter_interface=models.HORIZONTAL)

を下記に変更する。
categories = models.ManyToManyField(Category, db_table=u'%sposts_categories' % WP_PREFIX, filter_interface=models.HORIZONTAL)

これでadminへログインしてデータを確認する。

ちゃんと管理側でも確認出来た♪

後はviews.pyやテンプレートを作成すればOK.

でもWordPressをそのまま使えばって思うが、

Djangoで作ってみたい!!!ので作成する事に決定w

Posted at: 
2007/12/03 21:54:01
0 Comments
0 TrackBacks
Tags: 
Python
WordPress
Trackback: 
http://kishi-r.com/2007/12/03/djangowordpressadmin/trackback/

人気ブログランキング - kishi-r.com track feed
あわせて読みたい