mt-csv2customfields
「CSV形式のデータを Movable Type のカスタムフィールドに一括読み込みさせたい」という要望がかなり多いようなので、スクリプト mt-csv2customfields.cgi を作成しました。
CSVファイルを読み込み、新規ブログ記事のカスタムフィールドに登録します。
1.機能
今のところできるのは次の通りです。
- 新規ブログ記事のみ対応
- タイトルの書き込み
- 本文の書き込み
- カテゴリーまたはサブカテゴリーの書き込み。カテゴリーが存在しない場合は新規作成(トップレベルのみ)
- タグの書き込み(複数設定可能)
- カスタムフィールド(テキスト形式)の書き込み
- 複数のカスタムフィールドに対応
- 既存のブログ記事タイトルを指定した場合、カスタムフィールドのみ上書き(他のフィールドの内容は無視)
CSVのフォーマット
CSVデータは次のフォーマットにしてください。
1行目:
タイトル:'title'を設定
本文:'text'を設定
カテゴリー:'category'を設定
タグ:'tags'を設定
カスタムフィールド:カスタムフィールドのベースネームを設定
2行目以降:フィールドに対応したデータ。
カテゴリーは新規のトップカテゴリー(他と重複しない名称)または既存のカテゴリー名(サブカテゴリーであればサブカテゴリー名のみ設定)。
タグは新規のタグも大丈夫で、":"で区切れば複数設定できます。
なお、CSVデータはUTF-8のものしか確認ができておりません。
3.CSVデータのサンプル
title,text,category,tags,test1,test2,test3
たいとる1,てきすとの内容1,カテゴリー1,タグ1:タグ2,カスタムフィールド1の内容1,カスタムフィールド2の内容1,カスタムフィールド3の内容1
たいとる2,てきすとの内容2,カテゴリー2,タグ3:タグ4,カスタムフィールド1の内容2,カスタムフィールド2の内容2,カスタムフィールド3の内容2
たいとる3,てきすとの内容3,カテゴリー3,タグ5:タグ6,カスタムフィールド1の内容3,カスタムフィールド2の内容3,カスタムフィールド3の内容3
4.ライセンス
4.1 商用ライセンスの Movable Type で利用する場合
商用ライセンスの Movable Type で利用する場合は、有償(1000円/1サーバ)とさせて頂きます。お振込み方法につきましては、お問い合わせよりメールにてご連絡ください。
4.2 個人ライセンス(無償)と組み合わせる場合
個人ライセンス(無償)と組み合わせる場合は、無償でご利用ください。
5.インストール
下記のファイルをダウンロードして、展開した中にあるmt-csv2customfields.cgi をアプリケーションディレクトリにアップロードし、CGIが実行可能なパーミッションを変更してください。
たいしたスクリプトではありません。α版ということでお試しください。
- 修正履歴
- v0.01 2008.03.24 初版
- v0.02 2008.04.21 カテゴリーとタグに対応。head / body 要素の重複削除
6.利用方法
ブラウザから mt-csv2customfields.cgi にアクセスすると、次のような画面が表示されるので、ブログのID、ユーザーIDを数字で設定し、CSVファイルを選択して送信をクリックしてください。

正常に実行できれば次のような画面が表示されます。

登録後のブログ記事編集画面です。

- mt-csv2customfields v0.02
- カテゴリーリストにカスタムフィールドの画像を表示する
- カスタムフィールドのテキストエリアに入力した改行をページに反映させる
- カスタムフィールドの入力文字数の制限を変更する
- カスタムフィールドでアップロードした画像をテンプレートタグで表示する
- Movable Type 4.1 カスタムフィールドのデータの実体
- カスタムフィールドによるアップロード画像をサムネイルで表示するプラグイン 0.02
- Movable Type カスタムフィールドの DB スキーマ
便利なツールをありがとうございます。
ところで、これはカテゴリの設定はできませんか?
>yoshiさん
こんにちは。
ご質問の件ですが、ご要望の機能を追加してみました。
それではよろしくお願い致します。
ありがとうございます!大変助かります。
便利なツールをありがとうございます。
やりたいことはまさにコレって感じで、ありがたく使わせていただいてます。
2つのレンタルサーバで試してみましたが「UTF-8」だと、肝心のタイトルだけ何故か空っぽ(記事のリストで見ると「…」)になってしまいます。
(本文~カスタムフィールドは全て問題なく一括入力できています。)
「UTF-8N」で保存しなおしたところ、ようやくタイトルも含めて夢の一括読み込みができたのですが、個人的にちょっと不具合が…。
というのは、ブログ記事の出力ファイル名を指定したかったんです。
CSVデータ「本文欄」の冒頭に「希望のファイル名(英数字)」を追加して読み込むというやり方で出力ファイル名を指定していたのですが、UTF-8Nではこの方法が通用しないようです。(MT側が勝手につける「post」「post-1」等になってしまいます。)
UTF-8のときはタイトルが入らない代わりに出力ファイル名は希望通りの設定ができていたので、今はとりあえずUTF-8で読み込んだ後、タイトルを元ファイルからコピペしてます。
出力ファイル名も設定できるとウレシイのですが。
ちょっとハマってしまったので僭越ながら報告させていただきました。
報告ついでで恐縮ですが、以下さらにワガママな要望をいくつか…
ブログの設定でコメント&トラバを許可しているのですが、読み込まれた記事ではチェックが外れてしまいます。
ここも設定できたらハッピーです。
最後に一気に読み込むと公開時間が同じになってしまうせいか、idは読み込み順にキレイに並んでいるのですが、投稿順が逆?になってしまいます。
入力元のCSVデータには入力日のデータもあるので、できれば公開日も操作できると最高なんですけど^^
以上、ワガママ放題な長文コメントで失礼いたしました。

