• 解決済 aceec

    (@aceec)


    2025年10月11日頃
    特定期間に投稿した記事だけ、アイキャッチ画像が消えてしまうという不具合が発生しました。

    【該当期間】
    2024年5月24日~2025年1月22日までの間に投稿された記事のみ

    【起きている不具合の現象】
    アイキャッチ画像の設定が消えてしまっている。
    ※アイキャッチ画像自体はサーバー上に存在している。記事への紐づけの設定が消えているような状態。
    ※消えているのはアイキャッチ画像のみで、記事本文内に置いている画像は無事。

    【試した解決方法】
    ・使用プラグインの停止 →解決せず。
    ・ブラウザのキャッシュのクリア →解決せず。

    【不具合が起きている記事の一例】
    https://ace-cp.co.jp/info/event/4720/

    投稿を編集画面で見るとこうなっています。設定したはずのアイキャッチ画像が消えている。
    メディアライブラリで該当のアイキャッチ画像を確認すると、サムネイルが「default.svg」になっている。
    ですが、画像はサーバー上には存在しているし、画像URLに直接アクセスすれば表示されます。


    原因が分からなかったので、ひとまずの解決策として
    「同じ画像を再度メディアライブラリにアップロードし直し、手動で再度アイキャッチ画像に設定する。」という作業を行いました。

    → すると、「再設定したアイキャッチ画像が、時間を置くとまた勝手に消えてしまう。」という現象が発生しました。

    ・なぜ特定期間の記事にのみ、この現象が起きているのか?
    ・なぜアイキャッチ画像を再設定しても、また消えてしまうのか?

    まったく分からず、お手上げ状態になっています…。

    お気づきの点などございましたら、ご助言いただけますと幸いです。m(__)m

    【テーマ】自作テーマ
    【バージョン】6.8.3
    【使用中のプラグイン】
    All in One SEO
    Custom Taxonomy Order
    WordPress Importer
    Yet Another Related Posts Plugin (YARPP)

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • モデレーター Setouchi Kotori

    (@setouchikotori)

    【試した解決方法】
    ・使用プラグインの停止 →解決せず。
    ・ブラウザのキャッシュのクリア →解決せず。

    お試しになったことは以上でしょうか?

    デフォルトテーマに変えても再現するかどうかは確認されましたか?

    トピック投稿者 aceec

    (@aceec)

    コメントありがとうございます。

    デフォルトテーマ(Twenty Twenty-Five)に変更してみても、アイキャッチ画像は無いままでした。
    (管理画面→投稿編集画面で見たとき、設定していたアイキャッチ画像が無い状態になっていますので、テーマの問題では無いような気がいたします。)

    あと試したことといえば、「wp-config.php」に以下の記述を追加することです。

    define('CONCATENATE_SCRIPTS', false);

    結果は変わらずでした。

    アイキャッチ画像の設定が消えてしまったのは仕方ないとして、
    画像を再アップロード→手動でアイキャッチ画像を再設定しても
    なぜかまたアイキャッチ画像が消えてしまうので、ここで困っています…。

    モデレーター Setouchi Kotori

    (@setouchikotori)

    • 画像ファイル自体はあるのにアイキャッチ設定だけが消える
    • メディアファイルは存在している

    ということですので、_thumbnail_id のメタ情報が欠損している状態であろうと推察します。

    WordPress では、アイキャッチ画像の設定は wp_postmeta テーブルに _thumbnail_id という形で保存されています。その値が欠損しているために、画像自体が存在するにもかかわらず、代替画像 default.svg が表示されているのかもしれません。

    該当記事の ID を控えて、データベースで次のように検索してみてください。

    SELECT * FROM wp_postmeta WHERE post_id = xxx AND meta_key = '_thumbnail_id';

    xxx を記事 ID に置き換えてください。

    meta_value が空欄または存在しない場合、WordPress がアイキャッチを認識できていません。

    モデレーター Setouchi Kotori

    (@setouchikotori)

    続けて失礼します。

    ここまでご確認いただきありがとうございます。
    デフォルトテーマに変更しても既存記事でアイキャッチが消えたままということですので、テーマ由来ではなさそうですね。

    可能であれば、新規投稿を1件なさってみて、その投稿で新しくアップロードした画像をアイキャッチに設定 → 公開 → 再読み込み後も残っているかどうかをご確認いただけますか?

    新規投稿でも同じように消えてしまう場合は、WordPress 本体やデータベースまわりの問題の可能性が高まります。逆に、新規投稿で正常に保存できるなら、特定期間に保存された記事についてのみ _thumbnail_id が失われている状態かもしれません。

    管理画面から「WordPress を再インストール」してみるのもおすすめです。
    (実践される際は、必ずバックアップを取ってくださいね!)

    投稿や画像などのデータは消えず、WordPress 本体ファイルだけが再配置されます。ファイルの破損や保存処理の不整合が原因の場合、これで改善するケースがあります。

    再インストール後、新規投稿でアイキャッチを設定してみて、再び消えてしまうかどうかを確認してみてください。

    トピック投稿者 aceec

    (@aceec)

    ありがとうございます。

    ・「データベースで次のように検索」
    phpmyadminにログインしてみましたが、普段いじらないもので分からず、こちらの方法は試すことができませんでした。すみません。

    ・「可能であれば、新規投稿を1件なさってみて、その投稿で新しくアップロードした画像をアイキャッチに設定 → 公開 → 再読み込み後も残っているかどうかをご確認いただけますか?」
    こちら試してみましたが、新規投稿については、投稿後も正常にアイキャッチ画像が残っております。

    ですので、おそらくご指摘いただいた「特定期間に保存された記事についてのみ _thumbnail_id が失われている」という状況かと思います。

    WordPressの再インストールを進めてみたいと思います。
    また、サーバーの提供元にも一度確認してみます。
    ご返信ありがとうございました。

    トピック投稿者 aceec

    (@aceec)

    その後、下記ページのやり方に沿ってWordpressの再インストールを行ったのですが
    該当期間の記事にアイキャッチ画像を再設定してもやはり数分経つとアイキャッチ画像の設定が消えてしまうままでした…。

    WordPressの再インストール方法 参考:
    https://h2o-space.com/web/repair/6490/
    (※「wp-content」以外のファイルを上書きする形で再アップロードしました。)

    また、該当期間の記事のうち、下記の記事については管理画面→編集しようとすると「混雑中」となり編集画面に遷移もできません。
    (管理画面で編集ページにアクセスできないだけで、実際の記事ページにはアクセス可能です。)

    https://ace-cp.co.jp/info/event/5108/

    サーバーの提供元にも確認したのですが、こういった現象は前例が無いので対処できないとのことでした。

    WordPress本体ではなくデータベースの問題なのでしょうか…。
    サーバーの提供元はデータベースの修復などはサポート対象外とのこと。
    (バックアップ復元またはデータベース削除であれば有料で対応可能とのことです。)

    手詰まりの状態になってしまいました。

    モデレーター Setouchi Kotori

    (@setouchikotori)

    ここまで、丁寧に検証してくださってありがとうございます。

    WordPress の再インストールを実施しても改善しなかったということですので、WordPress 本体よりも、データベース内部の整合性 (特に _thumbnail_id メタ情報) に不具合が生じている可能性が高そうです。

    「データベースで次のように検索」

    phpmyadminにログインしてみましたが、普段いじらないもので分からず、こちらの方法は試すことができませんでした。すみません。

    SQL構文の実行が難しい場合でも、コマンド操作なしで試せる修復手順があります。
    よろしければ、以下の流れを順にお試しください。

    ──

    【 1 】 まずはバックアップを取る

    作業の前に、現在のデータベースと wp-content フォルダを丸ごとバックアップしておいてください。
    サーバーの管理パネル (phpMyAdmin や「データベースのエクスポート」機能) からでも構いません。

    ──

    【 2 】 WordPress の「データベース修復」を試す

    WordPress には、コマンドを使わずにデータベースの整合性をチェック・修復できる機能が用意されています。

    1. public_html > wp-config.php を開き、最後に以下の1行を追加します。define('WP_ALLOW_REPAIR', true);
    2. その状態で、ブラウザから https://ace-cp.co.jp/wp-admin/maint/repair.php にアクセスします。
    3. 「データベースを修復」または「データベースを修復して最適化」をクリック。
    4. 完了後は必ず先ほど追加した1行を wp-config.php から削除してください。

    ──

    上記 2 を実行される際、レンタルサーバーの WAF が以下のようなエラーを返す場合があります。

    • 403 Forbidden ・・・管理ディレクトリへの外部アクセスを遮断
    • 500 Internal Server Error ・・・PHPスクリプトの実行を遮断

    その場合はサーバーの WAF を一時的にオフにし、1時間ほど時間を置いて再度お試しください。完了後は必ず WAF を元に戻してくださいね。

    ──

    この操作で、_postmeta テーブルなどの破損が修復され、保存時に値が消える問題が解消する場合があります。

    なお、このフォーラムではありませんが、_thumbnail_id が欠損してアイキャッチ画像が表示されなかった例も報告されています。そのケースでは、データベース修復ツールではなく、phpMyAdmin 上で _thumbnail_id を手動修正して解決されています。

    I figured it out. Somehow in the import process a trailing space was added to the meta_key (making it “_thumbnail_id “). Mysql apparently matches on a trailing space which is why it wasn’t apparent, but once I removed the space all featured images started showing again.

    [ Google 翻訳 ] 解決しました。インポート処理中に、meta_key の末尾にスペースが追加されて「_thumbnail_id 」になっていました。MySQL は末尾のスペースでマッチングしていたため、それが目立たなかったようですが、スペースを削除すると、すべてのおすすめ画像が再び表示されるようになりました。

    Restore deleted _thumbnail_id in postmeta table – WordPress Stack Exchange

    ──

    【 3 】 再現テスト

    修復が完了したら、新規投稿を1件作成してアイキャッチを設定し、数分後に再読み込みをしても消えないかどうか確認してみてください。

    • 新しい記事では問題なく保持される → 修復によって改善
    • 新しい記事でも消える → _thumbnail_id の保存時に別の処理が干渉している

    という切り分けができます。

    ──

    【 4 】 それでも改善しない場合

    • 該当期間の記事のみを ツール > エクスポート で書き出し、新規環境にインポートして再構築してみる。

    ──

    作業ごとにしっかりとバックアップを取りながら、焦らずひとつずつお試しください。

    トピック投稿者 aceec

    (@aceec)

    度々のご返信、ありがとうございます。

    ・【 2 】 WordPress の「データベース修復」を試す
    こちらを試しましたが、「データベース修復」をクリックしてしばらくすると「混雑中」というページが表示され、データベース修復が完了しませんでした。
    サーバー提供元にWAFについて確認しましたが、「WAFの影響は受けていない」とのこと。

    —-

    ・「該当記事の ID を控えて、データベースで次のように検索してみてください。」

    SELECT * FROM wp_postmeta WHERE post_id = xxx AND meta_key = '_thumbnail_id';

    こちらについて、サーバー提供元側でSQLにて出力してもらえました。
    不具合が出ている記事の「meta_value」は下記のようになっておりました。

    +---------+---------+---------------+------------+
    | meta_id | post_id | meta_key | meta_value |
    +---------+---------+---------------+------------+
    | 6226 | 4440 | _thumbnail_id | 4434 |
    | 6268 | 4447 | _thumbnail_id | 4446 |
    | 6395 | 4457 | _thumbnail_id | 4458 |
    | 6660 | 4553 | _thumbnail_id | 4554 |
    | 6745 | 4612 | _thumbnail_id | 4622 |
    | 6775 | 4677 | _thumbnail_id | 4678 |
    | 6790 | 4682 | _thumbnail_id | 4681 |
    | 6829 | 4696 | _thumbnail_id | 4695 |
    | 6852 | 4711 | _thumbnail_id | 4710 |
    | 6873 | 4720 | _thumbnail_id | 4722 |
    | 6966 | 4776 | _thumbnail_id | 4839 |
    | 8207 | 5067 | _thumbnail_id | 5079 |
    | 8242 | 5108 | _thumbnail_id | 5148 |

    空欄でも非存在でも無く、「meta_value」の値は存在しているようです。

    —-

    ・「データベース修復ツールではなく、phpMyAdmin 上で _thumbnail_id を手動修正して解決」した例について
    phpMyAdminから「wp_postmeta」テーブルに入ってみると、下記のようなエラーが表示されます。

    エラー
    静的解析:

    解析中に 1 個のエラーが見つかりました。

    式がありません。 (near "ON" at position 25)
    SQL クエリ: コピー 編集 編集

    SET FOREIGN_KEY_CHECKS = ON;

    MySQL のメッセージ: ドキュメント

    #2006 - MySQL server has gone away

    他のテーブルは入ると中身がズラッと表示されるのですが「wp_postmeta」はこのようなエラーが表示されます、、。

    • この返信は2ヶ月、 3週前にaceecが編集しました。
    モデレーター Yukinobu Asakawa

    (@yukinobu)

    こんにちは😃

    横からすみません。
    推測の域を出ていませんが、もしかしたらと思いまして。

    投稿のカテゴリーや画像のファイル名に予約語の単語を使っていたりしませんか?

    https://codex.wordpress.org/Reserved_Terms

    トピック投稿者 aceec

    (@aceec)

    Yukinobu Asakawa様

    ご返信ありがとうございます。

    確認してみましたが、「カテゴリー」「タグ」のスラッグにはいずれも予約語は使用していませんでした。

    不具合が起きている期間中の画像についても確認してみましたが、
    ファイル名に予約語を使用しているファイルは無いものの、
    ファイル名に日本語を使用してしまっている画像を1つだけ見つけました。

    https://ace-cp.co.jp/info/wp-content/uploads/2024/12/Roadster_ロゴステッカープレゼントキャンペーン.jpg

    試しにこの画像ファイルをメディアライブラリから削除しようとすると、「混雑中」のページが表示され削除できませんでした。
    WordPressで日本語ファイル名を使用するのは推奨されていないというのは聞いたことがあるので少し気になりました、、。

    • この返信は2ヶ月、 3週前にaceecが編集しました。
    トピック投稿者 aceec

    (@aceec)

    ご報告

    その後、サーバー提供元のサポートで下記のような手順を試したところ、
    不具合が起きていた記事のアイキャッチ画像が元に戻りました!

    —-

    ・「phpMyAdmin」から「_postmeta」テーブルの「データベース修復」を試す。
    → 「_postmeta」テーブルにチェックを入れ「データベース修復」を押すと「phpMyAdmin」のログインページに飛ばされてしまい、データベース修復を完了できない。
    何度試してもこのログインループに陥ってしまい、データベース修復が出来ない。

    ・「phpMyAdmin」での修復が難しいため、代替手段として、WordPressのプラグインを用いたデータベース修復を試す。
    → 「WP-DBManager」というプラグインをインストール。
    → 上記プラグインで「DB 修復」を実行する。
    → 改善が見られず。
    → 同プラグインで「DB 最適化」を実行してみる。
    → 不具合が起きていた記事のアイキャッチ画像が元に戻りました!
    → 「phpMyAdmin」上で発生していたログインループについても、発生しなくなっていました。
    「_postmeta」テーブルを開こうとすると表示されていたエラーも、解消されていました。
    該当期間中の画像のメディアライブラリ上のサムネイル表示が「default.svg」になっていた現象も解消されていました。

    —-

    この度は、ご対応・ご協力いただき、まことにありがとうございました。
    無事解決できてほっとしています。

    モデレーター Setouchi Kotori

    (@setouchikotori)

    なんと!
    解決してよかったです。
    よかったですねぇ✨

    そして解決方法をご共有いただきありがとうございました。

    モデレーター Yukinobu Asakawa

    (@yukinobu)

    解決できて良かったです。
    ご報告ありがとうございました!

13件の返信を表示中 - 1 - 13件目 (全13件中)

このトピックに返信するにはログインが必要です。