Tag/WordPress
MT3.3からWordPress2.5への移行時に行った事
メモ代わりに。
移行する際に気になるのがパーマリンクの保持。
ようは以前と同じURLで移行しないとダメだよねって事で、
色々と調べてみたが最新の2.5対応が無かったorz
でもやる事としては、同じだよね。
- パーマリンクの保持
- タグの保持
- RSSフィードのURLの保持
- トラックバックとコメントの保持
位かな。
4のトラックバックとコメントはそのままデータをインポートすればOKで、
3のRSSフィードはMTのRSSのURLを.htaccessでリダイレクトしてやるなどで、
対処出来そう。
ただ1のパーマリンクと2のタグがやっかいだった。
そこで参考にしたのが、
ググったら絶対上位に出てくるサイト
MovableTypeからWordPressへのURL込みの移行方法
ここが解りやすいので、参考にさせていただきました。
まずやる流れが下記になる。
- WordPressのインストール
- WordPressのパーマリンクの設定
- MovableTypeへのパッチ
- WordPressへのパッチ
- MovableTypeからデータをエクスポート
- WordPressへデータをインポート
1.WordPressのインストール
WordPressの日本語サイトから最新バージョンの2.5をダウンロードしてくる。
インストール作業自体は以前のバージョンよりも全然簡単になっているので、
WordPress日本語版のインストールを見れば簡単にサクっと出来るはず。
2.WordPressのパーマリンクの設定
インストールが完了したらパーマリンクの設定になるので、


にあるタブから「設定」を選択して「パーマリンク設定」を選択する。
そうすると「一般的な設定」に「カスタム構造」というのがあるので、それを選択する。
設定内容は下記になる。
/%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行を追加するかと言うと、
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へデータをインポートします。
管理画面から下記画面にある「管理」を選択します。

その中にある「インポート」を選択します。
そうすると色々なブログの選択項目が出てくるので、ここから「MovableTypeとTypePad」を選択します。
次に「自分のコンピュータからファイルを選択する」で先ほどエクスポートしたファイルを選択して、
真ん中にある「ファイルをアップロードしてインポート」ボタンをクリックすれば自動でインポートされます。
これでパーマリンクへの対応は完了です。
このブログ自体も上記の手順で移行しました。
RSSのフィードもさくらインターネットであれば、リダイレクトも出来たので多分OKなのかな?
タグに関してはまた試してみて記載しようと思います。
- Posted at:
- 2008/04/20 22:59:00
- 0 Comments
- 0 TrackBacks
- 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.pyがWordPressの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.pyでINSTALLED_APPSに「6」で追加したアプリケーションblogを追加。
他にもadminなんかも追加しておくので、
settyngs.pyのINSTALLED_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
- Trackback:
- http://kishi-r.com/2007/12/03/djangowordpressadmin/trackback/

