TEL 070-8529-6221
【完全ガイド】WordPressのアイキャッチ画像が消えたときの復旧方法

WordPressを更新したり、データベースを修正したあとに
「アイキャッチ画像が全部消えた!」という経験はありませんか?😨
この記事では、実際に発生したケースをもとに、
消えてしまったアイキャッチを復旧する手順を詳しく解説します。
💡 トラブルの症状
テーマやWordPressのバージョンアップ後、
記事一覧やトップページでアイキャッチが表示されない状態になりました。
メディアライブラリを見ると、画像自体は残っているのに
投稿に紐づいていない(未添付)状態になっていたのです。
🔐 ステップ1:SSH(SSL)接続で安全にサーバーへログイン
まずはサーバーに安全にアクセスして、
WordPressの内部データを確認します。
SSH(Secure Shell)は、通信内容を暗号化して行う安全な接続方法です。
Windowsの場合、次のように接続します👇
ssh -i "C:\Users\あなたのPC名\.ssh\my-key.pem" -p 8022 youruser@yourserver.jp
🔸秘密鍵(
.pemファイル)は自分のPCだけに保存し、絶対に他人に渡さないでください。
🔸「youruser」「yourserver.jp」はサーバー業者ごとに異なります。
🧭 ステップ2:WP-CLIでアイキャッチが設定されていない投稿を探す
WordPressがインストールされているディレクトリに移動して、
以下のコマンドで「アイキャッチ未設定の記事」を一覧表示します👇
wp db query "SELECT ID, post_title FROM wp_posts WHERE post_type='post' AND post_status='publish' AND ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key='_thumbnail_id');"
出力例👇
| ID | タイトル |
|---|---|
| 4733 | 【都城周辺】おすすめのチキン南蛮 |
| 4198 | 【都城】絶対外さない!おすすめの手土産 |
🧩 ステップ3:対応する画像ファイルを確認する
アイキャッチ画像はメディアライブラリと紐づいています。
WP-CLIを使って、その投稿がどの画像を参照しているかを確認します。
wp eval 'echo get_attached_file(4899);'
出力例👇
/home/ユーザー名/public_html/wp-content/uploads/2024/04/【blog】アイキャッチ.png
もし get_attached_file() の結果が空(表示されない)なら、
WordPress側が画像の紐付けを見失っている状態です。
🛠 ステップ4:日本語ファイル名を英数字に複製する
日本語や記号を含むファイル名は、サーバー環境によっては
正しく認識されないことがあります。
その場合は、次のようにASCII文字(英数字)で複製します👇
cp "【blog】アイキャッチ.png" "featured-chickennanban.png"
🧱 ステップ5:アイキャッチ画像を再登録する
複製した画像をWordPressに再登録して、投稿と紐づけます👇
NEW_ID=$(wp media import "featured-chickennanban.png" --skip-copy --porcelain)
wp post meta set 4733 _thumbnail_id $NEW_ID
wp media regenerate $NEW_ID --yes
実行後に以下のように表示されれば成功です✨
Regenerated thumbnails for "featured-chickennanban.png" (ID 9635)
🔄 ステップ6:複数投稿を一括で修復する
同じような投稿がたくさんある場合は、
以下のように for文(ループ) でまとめて処理することもできます👇
for POST_ID in 4733 4198 4201 4256; do
IMG_FILE="featured-${POST_ID}.png"
NEW_ID=$(wp media import "$IMG_FILE" --skip-copy --porcelain)
wp post meta set $POST_ID _thumbnail_id $NEW_ID
wp media regenerate $NEW_ID --yes
done
📋 最後に:固定ページの復旧もあわせて確認
今回のケースでは、WordPressの更新時に
「固定ページ」まで「投稿ページ」に変わってしまっていました。
その場合は、以下のコマンドで修正できます👇
wp post update 45 --post_type=page
wp post update 62 --post_type=page
🧰 まとめ
| 手順 | 内容 |
|---|---|
| ① | SSHで安全にサーバー接続 |
| ② | アイキャッチ未設定投稿を探す |
| ③ | 紐づけが切れた画像を確認 |
| ④ | 日本語ファイル名を英数字で複製 |
| ⑤ | WP-CLIで再登録+サムネイル再生成 |
| ⑥ | 固定ページもpost_typeで修正 |
💬 教訓
- 🔒 SSH接続で安全に作業する
- 💾 WordPress更新前に必ずバックアップをとる
- 🏷 ファイル名は英数字推奨(日本語は避ける)
- ⚙️ WP-CLIは復旧・修正の最強ツール
トラブルは焦らず、1つずつ確認すれば必ず解決できます。
WordPressの構造を理解しておくと、どんな不具合も怖くありません!


コメント