note から WordPress に出戻りました!😭

【悲報】20年連れ添った相棒(WP)を捨てて若いベッピン(note)に走った男、全財産を失い泣きながら元の鞘へ戻るの巻

だるかぶ

サンダルでスーパーカブ乗りの『だるかぶ』です!
ご訪問ありがとうございます。ゆっくりしていってね。(本ページは広告を含みます。一部 AI により作成。)

こんにちは「だるかぶ」です。
この記事は note から WordPress へ 2,435 記事を移行した実録、画像・YouTube・アイキャッチまで全部やり直した話を赤裸々にお伝えします。

事の顛末

突然ですが、皆さんに白状しなければならないことがあります。

私はかつて、2007 年から約 20 年間、WordPress という名の連れ添った相棒がいました。

しかしある日、ふと魔が差したのです。「今どきのオシャレなプラットフォーム(note)って、なんだかキラキラしてて楽しそうだな…」と。

そんな軽い浮気心から、気がつけば 2,500 記事という大荷物を抱えて note へお引っ越し。
「これからはミニマルに、スマートに生きていくんだ!」と息巻いていました。

……が、現実は甘くありませんでした。

どうしてもあの独特の空気感に馴染めず、心の中の「WordPress への未練」は募るばかり。結局、「やっぱりお前じゃなきゃダメだ!」と、元の鞘(WordPress)に出戻ることを決意しました。

しかし、浮気の代償はあまりにも大きかったのです。
Google 先生は一度出て行った男をそう簡単には許してくれませんでした。

長年築き上げてきた検索エンジンの評価、リンク、クロール資産……。それらすべてを note に置いてけぼりにし、実質「資産ゼロのド素人ブログ」として再出発することになりました(泣)。

2,435 記事の引っ越し作業は、まさに血と汗と涙の連続。自動でついてこない画像、崩れるYouTubeの埋め込み、消え去ったカテゴリ……。

今回は、そんな「すべてを捨ててゼロから出直す男」が、WordPress の最新テーマ(SANGO)とエックスサーバーの力を借りて、力技でブログを復旧させたドタバタの移行手順をメモとして残しておきます。

「これから note から WordPress へ帰りたい」という迷える子羊たちの、せめてもの人柱(道標)になれば幸いです!

note から WordPress に出戻った理由

「note に引っ越せばアクセス数爆上がりで大儲け!」そう思っていた。
でも、実際アクセス数は増えなかった。

テーブル(表組み)や Markdown を捨て、自由なデザインも捨て、「書くことだけに集中しよう」と思っていた。

でも違った。

記事を書けば書くほど違和感が大きくなって、気付けば WordPress が恋しくなっていた。

XServer 契約

どうせまた逃げ出したら無駄になるのに、勢いで XServer スタンダードプランを3年契約。
後戻りできないように自分を追い込んだ。

無料独自ドメイン darucub.com 取得。
サーバー代は、毎月千円ぐらい。一日30円換算だから楽勝w

note から記事をエクスポート

note の「自分の記事」から「エクスポート」をクリック、1時間後にダウンロード準備完了のメールが届いた。

早速ダウンロードしてみると、ファイルは9個に分かれてて、合計容量は 3.69 GB だった。
それぞれの ZIP ファイルを解凍して、XML をひとつづつ WordPress にインポートすれば記事の移転ができるみたい。

WordPress で記事をインポート

インポート時にやった事は下記の通り。

  • 投稿を既存のユーザーに割り当てた
  • 「添付ファイルをダウンロードしてインポートする」をチェックしたけど画像がインポートされてない!
  • 「Change all imported URLs that currently link to the previous site so that they now link to this site」は、移転先に合わせてリンクを修正という意味なのでチェックした。

結果、note.com の 2,435 記事がすべてインポートできた。下記の通り記事の状態も正常。

  • 公開済み:2,420
  • 下書き:15

「おっ、意外と簡単じゃん」

……と思ったのも束の間。

画像は1枚も付いてきてなかった。

WordPress で画像のパスを置換

インポートした記事の画像は下記のようなルートから始まるパスになってた。

/assets/nf1c7290f2126_1757717578-di4nxPYqbyNf6scuEBw1FXTO.jpg

Search Regex プラグインをインストールして、下記のように検索・置換する。

<img src="/assets/n

上記を下記のように置換した。

<img src="https://darucub.com/wp-content/uploads/assets/n

コードをきれいにする

note からインポートした記事のコードには name, id が大量に入っていたので、phpMyAdmin で下記を実行し一括削除した。

UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '\\x20id="[^"]+"', '');
UPDATE wp_posts SET post_content = REGEXP_REPLACE(post_content, '\\x20name="[^"]+"', '');

また、画像のキャプションも figure タグで囲まれていたので一括削除した。

YouTube 埋め込みをショートコードに置換

note だと YouTube の短縮 URL を貼れば動画を埋め込めたんだけど、いま使っている SANGO テーマだと縦横比がおかしくなったので、ショートコードに置換。

具体的には、

<a href="https://youtu.be/xxxxxxxxxxx">https://youtu.be/xxxxxxxxxxx</a>

上のようになっているコードを下記のように置換したい。

[youtube]
 https://youtu.be/xxxxxxxxxxx
[/youtube]

Search Regex の正規表現で置換した。

検索文字列は下記

<a\s+href="(https://youtu\.be/[^"]+)">.*?</a>

置換文字列は下記

[youtube]
 $1
[/youtube]

Google マップの埋め込みコードを一括置換した

Google マップの埋め込みコードが何故かリンクに変わっていたので一括置換することに。

バックアップを取ってから、Search Regex の正規表現で一括置換した。

検索文字列は下記

<a\s+href="(https://www\.google\.com/maps/embed\?pb=[^"]+)">.*?<\/a>

置換文字列は下記

<iframe src="$1" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>

全部で 231 個の Google マップを一括置換できたので、手作業の手間を随分と減らせて良かった。わーい!

定型文をコンテンツブロックに

note で使ってた記事の頭とお尻の定型文を、SANGO のコンテンツブロックで共通パーツにする。
note 時代の直書きのテキストは、Better Search Replace プラグインで一括削除した。

デカすぎる画像を縮小する

note に画像を貼ると縮小されず 5,000 ピクセル以上の画像が貼られていたりする。
ちょっとデカすぎるので縮小した。

EWWW プラグインで既存画像を一括リサイズしようと思ったけど、DB に登録されていない画像は処理できないみたい。

2500記事分の画像を見た瞬間、「あ、終わった」と声が出た。

仕方がないので FTP でダウンして、ツールでリサイズ。アップロードすることにした。

WinSCP で重い画像順に並び替えて 1MB 以上の画像をローカルにダウンロード。
Windows の PowerToys 内 Image Resizer を長辺 1920px に縮小してアップし直した。

アイキャッチ画像の一括登録

note からインポートした記事はアイキャッチ画像が登録されていなかった。

アイキャッチなんて「プラグインで一発でしょ」と思っていた自分を殴りたい。

記事の1枚目の画像を自動的にアイキャッチに登録しようと下記のプラグインを試したがうまくいかない。
そもそも DB に登録されていない画像は処理できないし、一括登録も出来なかった。

  • XO Featured Image Tools
  • Auto Featured Image

結局 ChatGPT と二人三脚で PHP を書くことになった。
仕方がないのでチャッピー(ChatGPT)に聞きながら、アイキャッチを登録する PHP ファイルを書いてブラウザで直接実行した。

あと、分かった事・やった事

  • どんなに古い記事でも note の仕様で最古の投稿日は「2014年4月7日」に設定される。
  • パーマリンクを /%post_id% に変更した。
  • Classic Editor プラグインをインストール。
  • テーマは、SANGO 3.12.6 インストールした。
  • カテゴリとタグが無くなってる。
  • 全体デザインを調整する
  • CSS で写真を全幅にした。
  • Markdown で記事を書きたかったので Jetpack プラグインをインストールした。
    • 管理画面左の Jetpack アイコンをクリックした画面の下にモジュール設定があるので Markdown 以外を停止する。
  • 各種 SNS のプロフィール欄に記載していた note へのリンクを darucub.com に書き換えた。

あとは記事を微調整しながら公開する

記事のステータスが「公開済み」なのを「非公開」に変更。確認の終わった記事から公開していく。
管理画面の記事一覧表示数を 200 ぐらいに設定して、一括編集で「非公開」にする。

WordPress の記事を公開したら、下記の手順で新記事に誘導する。

  • 各種 SNS に記事をポストする。
  • 記事と連動した YouTube 動画があるなら、動画概要分の記事リンク URL を修正。
  • 移転元の note 記事に移転のお知らせリンクを掲載する。

WordPress と note の記事対応表を作った

移行作業中、記事移行後の WordPress の記事と、移行元の note の記事の両方を開くのが、記事の検索とかしないといけないので非常に面倒くせぇ!

何とかならないかと思いながら、WordPress のデータベースを覗いていると guid というカラムに note の URL っぽい文字列を発見!

ということで、phpMyAdmin で下記のような SQL を実行し、CSV を書き出した。

SELECT
    ID,
    guid,
    post_title
FROM wp_posts
WHERE post_type = 'post'
ORDER BY ID;

このリストができて少し時間の節約が出来た気がする。

最後に私からみんなへアドバイス

もし今、「WordPress を捨てようかな……」と思っている人がいたら、一度だけ深呼吸してください。
私は深呼吸しなかった結果、2,435 記事を二度引っ越すことになりました。

このブログがまた育った頃には、「あの出戻り野郎、意外と立て直したじゃん」と笑ってもらえたら嬉しいです。

この記事が、未来の誰かの「やらかし防止マニュアル」になれば本望です(笑)

現場からは以上です!それでは、またッ!!!

だるかぶ

最後までお読みいただきありがとうございます! スキ・コメント・シェア・フォローなどで応援いただけると『だるかぶ』のやる気がアップします!
記事内容の修正について 記載している内容は記事執筆時の情報です。 できるだけ最新情報を掲載するようにしていますが、情報が間違っている場合は「コメント」でご指摘いただけるとありがたいです。

コメントを残す

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