WordPressへの移行で、記事間の参照関係を保つ方法

昨日書いたように、年末の2日間でこのブログを忍者ブログからWordPressへ移行した。
今回の移行にあたって、まず最優先に考えたのは、約1500個の記事間のリンクが保たれることだ。 このブログでは、過去の記事を参照することがかなり頻繁にあり、その参照関係を維持できない移行は考えられない。

ところが、参照関係を維持したまま移行するにはいくつものハードルがあった。

エクスポートされた記事にはID/URLが付与されていない

ブログのエクスポート形式としてはMovableType形式が選択できるが、出力されたデータには URL の情報が無かった。

元の記事の URL は以下のような構造になっていた。

https://blog.ipodlab.net/Entry/番号

番号は1から始まる通し番号だ。

WordPressでは移行元と同じ形式のURLが使えない

このURLを、WordPress上でも維持したい。ただしWordPress では URL に大文字が入ることは推奨されないので、URL を以下のように書き直すことにした。

https://blog.ipodlab.net/entry-番号

この程度のURLの違いなら、サーバのリダイレクト機能で旧URLから新URLへ飛ばすことが可能だし、記事中のURLはエクスポートされたテキストデータをエディタで一括置換すれば書き換えることができる。

インポートした記事に移行元ブログと似たURLを手作業で付与することが必要

ただ問題は、そもそも番号の情報がエクスポートされたデータの中には入っていないことだ。このデータを WordPress にインポートすると、記事に対して勝手な ID が割り振られるが、この ID は元の記事の URL とは関係がないので、参照関係を保つためには使えない。

しかし、WordPress には記事毎にスラッグという属性があり、スラッグで記事を参照することができる。従って、各記事について移行前の URL の「Entry/番号」を「entry-番号」というスラッグに移すことができれば、参照関係を復元することができる。

番号の情報はエクスポートされていないが、基本的には日付順の連番なので、まず記事を日付順に並べ、手作業で各記事に番号を割り当てていく必要がある。これを WordPress のエディタで一つ一つの記事ごとに作業するのはほぼ不可能だ。

インポートしてCSVでエクスポートして編集して再インポート

そこで、今回は全記事のデータをCSV形式に変換して、表計算ソフトでスラッグを自動生成し、そのデータをWordPressにインポートすることで記事にスラッグを割り当てた。

具体的には、以下のような手順になる。

(1)まず、普通にMT形式のエクスポートデータをWordPressでインポートする。
(2)プラグイン「WP All Export」を使って、全記事のデータをCSV形式で書き出す。
(3)このデータを表計算ソフトで読み込み、「フィル」の機能を使って先頭の記事から順にスラッグを「entry-1、entry-2、・・・」というように割り当てる。
(4)データを再びCSV形式で書き出す。
(5)データをテキストエディタで読み込み、置換機能でURL「https://blog.ipodlab.net/Entry/」を「https://blog.ipodlab.net/entry-」に全置換する。
(6)このデータをプラグイン「WP All Import」でWordPressに取り込む。

今回使った2つのプラグイン、WP All ExportとWP All Importは素晴らしい組み合わせで、うまく使えば全記事に渡る書き換えをテキストエディタの機能でアッと言う前に完了できる。

ただ、使い方はちょっと分かりにくいので、別記事で紹介する。

コメント

タイトルとURLをコピーしました