×

アメブロからWordPressへのアーティクル移行を実行中です。

そのとき最大のボトルネックはなんといっても画像です。
移行自動化の仕組みは一切ありません。

数千枚の画像ファイルの実体ファイルをエクスポート/インポートしなければなりませんし、それをライブラリに手動登録しなければなりません。
まず、アメブロに置いてある数千枚の画像。これをどうやって落としてくるか?当然ながらアメブロ公式でそんなツールや機能はありません。記事のエクスポートすら無いのですから。

仕方がないので、画像をサルベージするためのかんたんなPythonを書いて走らせました
記事の日付に従って、年/月/ファイル名 のフォルダ構造を伴ってダウンロードするようなプログラムを書きました。なぜなら、WordPress側のuploadsフォルダ(ライブラリ)のフォルダ構造がそうなっているからです。

これらによって、何とかアメブロ記事の全画像を落としてくるまでは成功。調べてみると、6年間全部で3200枚ほどのブログ画像が投稿されていました。まぁ、大した労力ですよね。1記事あたり平均で3枚以上の画像ということ。

これがWord Press側のライブラリのフォルダ構造です。 yyyy/mm/xxxxxxxx.xxx という階層でメディアファイルが収納されていくわけです。

ところが、WordPress側の仕様が腐っていて。こんな風にフォルダ構造を整備・再現して組み込んでも、WordPressはそれをスキャンしてくれるわけではないのです。ライブラリの管理ファイルは、「登録したその月」で判定してファイルを配置してくれますが、逆はない。置いてあるファイルを一括登録すると、(せっかくフォルダは分類されているのに)全部のファイルが「今日」の日付でDBに収納されてしまいます。

できればライブラリには、年月情報を保ったままで画像登録したい。なぜなら、記事の再構築をする際に検索性が段違いだからです。

そこで、日付構造を再現してDB登録できないものか。少し調べました。
結果、Media Syncというプラグインに行き当たりました。

WordPressはデファクトなので、膨大な種類のプラグインが開発されています。Media Syncもその一つ。簡単にいうと、WordPress内の「メディアライブラリの再構築」ができるプラグインです。

上図はWordPress上でMedia Syncを走らせている様子。

まず、アメブロから落としてきた画像をごっそり、wordpress/wp-content/uploads/ 配下にフォルダ構造を保ったままコピペしておくわけです。

WordPressはこれらの画像を「自動スキャン」してくれませんので、当然ながらライブラリには登さず録されません。そこでMedia Syncの出番です。

Media Syncは、フォルダ内をスキャンして、未登録の画像であればライブラリDBへ自動登録してくれる、というプラグインです。このとき、同一フォルダであればフォルダ構成を壊さないでDBだけ書き換えてくれる、というのもポイント高しです。

ここでポイントになるのが、上記 Smart file time というオプション設定

これはどういうものかというと、フォルダ構造を自動判別して、その年月フォルダの通りにDB登録してくれる というオプションです。

例:
2022/9/image00001.jpg →. image00001.jpgは. 2022/9/1 0:00:00 の画像としてDB登録
2024/6/image00222.jpg →. image00222.jpgは. 2024/6/1 0:00:00 の画像としてDB登録
(一般的使い方ならこれらが全部 2025/9月に登録されてしまいます)

まさにこれこそ、今回の使徒にジャストフィットな機能。
ということで、迷わず課金しました。(1ヶ月)
課金すると、ファイル数が無制限になるのです。無料枠だと3千枚以上の画像登録は途中で止まってしまいます。

結論としては、成功です。全スキャンが完了し、すべての画像が正しい年月でDB登録できました。
上記例では2021年7月のブログ記事に使われる画像「だけ」が表示されています。
これがどれほど、ブログ記事画像の再リンクに役立つか。

課金してやった甲斐があったと思っています。

画像(マルチメディア)の移植さえ完璧に完了すれば、記事のhtmlの移行は容易。そう思っています。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

投稿者

KeroYon

関連投稿