CSVインポート機能でのエントリーコード指定方法について再検証してみた

この記事は公開日より8年以上経過しているため、現在の内容と異なる可能性があります。


CSVインポート時に、entry_codeの内容が反映されない というフォーラムで質問があった事を今回は取り上げて書いてみたいと思います。

a-blog cms の CSVインポート機能

Movable Type からのインポート、WordPress からのインポート、CSV からのインポートが可能です。今回は CSV からのインポートについて検証してみた事についてを書いてみたいと思います。ドキュメント / データ管理に詳しく説明が書かれています。

エントリーコードの拡張子について

「カスタマイズ管理 > コンフィグ > エントリー編集設定 > エントリーコード」に以下のような設定をするところがあります。一般的には、ここに「html」と書かれている事で、詳細ページのURLが .html で終わる事になっています。



上記の「ファイル名拡張子」を空にすると /entry-999/ という感じの URL で運用する事ができるようです。 私自身、やった事がなく知りませんでした。

2.6.0.2 でテストした結果

  • (1)のようにエントリーコードの項目がない場合には、通常のブラウザから1件追加する際と同様に自動発番で設定されます。
  • (2)(3)CSVファイルの entry_code に拡張子が無かったとしても、そのままでエントリーコードとしてインポートしている。
  • (4)(5)CSVファイルの entry_code に拡張子があった場合には、その名前でエントリーが作成されている。
NOCSV entry_codeコンフィグ ファイル名拡張子エントリーコード結果
1(なし)(なし)entry-999.html
2xxx-1htmlxxx-1
3xxx-1(なし)xxx-1
4xxx-1.htmlhtmlxxx-1.html
5xxx-1.html(なし)xxx-1.html

2.6.1 で CSVインポートがアップデートしている

CSVアップデート機能が 2.6.1 で プロフェッショナル版以上で CSVアップデート する際のキーが entry_id 以外を指定してアップデートする事ができる機能が追加 になっています。その際に、CSV関連のプログラムが改良されています。

その際に少し仕様が変更になっている事が、フォーラムで話があわない原因だったようです。また、バージョンアップで挙動は変わって困っている人がいるかもしれません。申し訳ありませんでした。

2.6.1.3 でテストした結果

  • (1)のようにエントリーコードの項目がない場合には、通常のブラウザから1件追加する際と同様に自動発番で設定されます。
  • (2)(3)CSVファイルの拡張子がない xxx-1 のようなエントリーコードを指定している場合には、コンフィグ ファイル名拡張子が何であったとしても xxx-1.html のようなエントリーコードでインポートされます。
  • (4)(5)(6)については、正常な値でないという認識なのか、entry_code が無い時の処理になっているようでした。コンフィグ ファイル名拡張子を見て発番しつつドットを付加して設定しているようでした。
NOCSV entry_codeコンフィグ ファイル名拡張子エントリーコード結果
1(なし)(なし)entry-999.html
2xxx-1htmlxxx-1.html
3xxx-1(なし)xxx-1.html△ 希望の形式でない
4xxx-1.html(なし)entry-999.× 仕様上問題あり
5xxx-1.html.htmlentry-999..html× 設定ミス
6xxx-1.htmlhtmlentry-999.html△ 希望の形式でない

(5)については、設定時に拡張子のところでドットがついていたら消すような設定が欲しいですね。(エラーにしないでコンバートして欲しい)

今後のバージョンでは

  1. CSV entry_code が xxx-1.html だった場合は、拡張子を無視して処理する
  2. コンフィグ ファイル名拡張子をインポート時にも利用する
  3. コンフィグ ファイル名拡張子の設定時にドットがあったら削除する

これらを変更する事で、どちらのバージョンを使っていたとしても、思った動きに設定する事ができ、CSVインポートで疑問点が減ってスムーズに運用ができるようになるのではないかと思われます。

次のバージョン 2.6.1.4 では、以下のようになればいいのではないかと考えています。

NOCSV entry_codeコンフィグ ファイル名拡張子エントリーコード結果
1(なし)htmlentry-999.html
2(なし)(なし)entry-999
3xxx-1htmlxxx-1.html
4xxx-1(なし)xxx-1
5xxx-1.htmlhtmlxxx-1.html
6xxx-1.html(なし)xxx-1
7xxx-1.xxxhtmlxxx-1.html

今後も、より便利に運用できるように改善していきます。この時点では、こうしたいという事であり、まだ修正されていませんのでご注意ください。(修正された時点でこの部分は消えて修正された事が追記したいと思います。)

同じタグ付けがされている記事