テーマをCocoonに変更しました!
プラグイン

WordPressプラグイン自動更新で重大エラー発生|Shortcodes Ultimate更新失敗が引き起こした地獄の1日【実体験】

FavoriteLoadingお気に入り登録
プラグイン

WordPressプラグインの自動更新が引き起こした地獄の1日【実体験】

昨日まで普通に動いていた2つのサイトが、今日突然「このサイトで重大なエラーが発生しました。」という表示に。原因を調べていくとShortcodes Ultimateプラグインの自動更新の失敗が引き金だった。1つ目のサイトはわりとすんなり解決できたが、2つ目のサイトが大ハマリ。丸1日格闘した結果、まさかのカンマ1個の抜けが真犯人だった。「え、カンマ1個?!昨日まで動いてたのになんで今日壊れるの?!」同じ経験をした人の参考になればと思い、今日の一部始終をまとめる。

そもそもの発端:プラグインの自動更新失敗

「Shortcodes Ultimate」が自動更新されたタイミングで、2つのサイトが同時にエラーで表示されなくなった。自動更新は便利な機能だが、更新が途中で失敗するとプラグインが中途半端な状態になり、サイトが壊れることがある。今回まさにそれが起きた。

対処の流れ(共通)

管理画面にもアクセスできない状態だったので、まずFTPで対処した。

FTPでプラグインフォルダ名を変更(無効化)
サイトが表示される
管理画面にアクセスできるようになる
管理画面からShortcodes Ultimateをアンインストール
再インストールを試みる
有効化できないのでそのままアンインストール

サイトA:これで解決

1つ目のサイトはアンインストールして終わり。あっさり正常に戻った。「Shortcodes Ultimateが自動更新に失敗しただけ。プラグインを消せば解決」この時点ではそう思っていた。

サイトB:大ハマリ

問題は2つ目のサイトだった。サイトAとまったく同じ手順でアンインストールしたのに、なぜかサイトBだけ正常に戻らない。「同じことをしたのになぜ?!」サイトは表示されるものの型崩れが起き、さらに重大なエラーまで表示されるという謎の状態に。

原因を探る旅

テーマを切り替えて検証

試しに子テーマから親テーマに切り替えたところ、サイトが正常に表示された。ここで「子テーマの中に何か問題がある」とほぼ確定。

phpMyAdminで投稿・DBを全検索

Shortcodes Ultimateのショートコードは [su_ で始まる。投稿本文やウィジェットにショートコードが残っていないかphpMyAdminで確認した。

-- 投稿本文を検索
SELECT ID, post_title, post_content
FROM wp_posts
WHERE post_content LIKE '%[su_%';

-- ウィジェット・設定を検索
SELECT option_name, option_value
FROM wp_options
WHERE option_value LIKE '%[su_%';

両方とも結果は0件。データベースには何も残っていなかった。

FTPで子テーマのファイルを確認

使用している子テーマを無効化し新しく子テーマを作り直す。スタイルシートから順番に1つUPしサイトが正常に表示されるか確認しながら行った。そして見つかったのが、sidebar.phpが原因だということがわかったw

発見!カンマが1個抜けていた

// NG:カンマが抜けている
$rss = fetch_feed(array(
    'https://webcss.withrun.org/rss/...',
    'https://webcss.withrun.org/rss/...'  // ← ここにカンマがない!
    'https://webcss.withrun.org/s/rss_atom/'
));

// OK:カンマを追加
$rss = fetch_feed(array(
    'https://webcss.withrun.org/rss/...',
    'https://webcss.withrun.org/rss/...', // ← カンマを追加
    'https://webcss.withrun.org/rss_atom/'
));

カンマを1個追加したら、あっさり解決。「え、これだけ?!丸1日これだったの?!

「昨日まで動いていたのに今日壊れた」のはなぜ?

ここが一番腑に落ちなかった部分。カンマが抜けていたなら昨日もエラーのはずでは?答え:Shortcodes UltimateがPHPのエラーを隠していた

Shortcodes Ultimateは内部でPHPのエラーハンドリングをカスタマイズする処理を持っている。これが有効な間は、sidebar.php のカンマ抜けによるエラーが握りつぶされていた。つまりこういう状態だった。

昨日今日
sidebar.phpにカンマ抜けのバグが存在

Shortcodes Ultimateがエラーを握りつぶす

サイト正常表示(エラーは起きていたが見えていなかった)
Shortcodes Ultimateの自動更新が失敗

プラグインが中途半端な状態になる

エラーを握りつぶす機能も正常に動かなくなる

カンマ抜けのエラーが表面化

重大なエラー表示

つまり今回の事件の構造はこうだった。

直接の引き金Shortcodes Ultimateの自動更新失敗
真の原因sidebar.phpのカンマ抜け(以前からあったバグ)

プラグインの自動更新失敗が、潜在していたバグを表面化させたというわけだ。

教訓

1. 自動更新は万能ではない

自動更新が失敗するとサイトが壊れることがある。特に複数サイトを運営している場合は影響範囲が広くなる。更新後は必ずサイトを確認する習慣をつけたい。

2. 「昨日まで動いていた」は「正常だった」ではない

エラーが隠れていただけで、バグはずっと存在していた可能性がある。今回はまさにそのケースだった。

3. 同じ手順で解決しないときは別の原因が潜んでいる

サイトAで解決した手順がサイトBで通用しなかったのは、サイトBだけ別のバグを抱えていたから。「なぜ同じ結果にならないのか」という視点で掘り下げることが大事。

4. PHPの構文エラーはカンマ1個でも致命的

PHPは文法に厳しい。カンマ、セミコロン、クォーテーションの抜けが即サイトダウンにつながる。コードを書いたら必ず構文を確認する。

5. FTPは必ず使える状態にしておく

管理画面にアクセスできないときでもFTPがあれば対処できる。いざというときのためにFTPソフトの設定は済ませておこう。

まとめ“>今回の騒動をひと言で表すなら「自動更新が引き起こした連鎖トラブル」だ。

Shortcodes Ultimateの自動更新失敗という直接の引き金と、以前から潜んでいたカンマ1個のバグが重なって、丸1日の格闘になった。

脱力感は否めないが、これも経験。同じ悩みで困っている人の役に立てれば幸いだ。

気になる中古パソコン

Supported by Rakuten Web Service

コメント

※当サイトは、Amazon、楽天アソシエイト・他プログラムの参加者です。リンクを通じて商品を購入すると、紹介料を得る場合があります。
タイトルとURLをコピーしました