WPのアップデートによる突然のエラーとその時とった解決策


一昨日、たまには記事を更新するかと編集画面を開いた時のことでした。

「wordpressの新しいバージョンがあります」という通知に気づき、当然のようにアップデートを決意した私は、それが悲劇の始まりなろうとは夢にも思わず、躊躇なく更新ボタンをクリックしました。
スポンサーリンク

wordpressのアップデートと突然の不具合

アップデートを済ませた、wordpressを再起動をするとPCの画面には次のようなエラーメッセージが表示されていました。

/iWarning: Invalid argument supplied for foreach() in /*****/********/ietore.com/public_html/wp-content/plugins/head-cleaner/head-cleaner.php on line 2895

エラーを起こしているファイル名を確認せよ

このエラーメッセージを目にした時、私は「Invalid argument supplied for foreach() 」という部分に注目し、調べてみました。

すると、すぐに「解決策」がヒットしました。

foreach ($arr as $value) {
  // hogehoge.
}
を次のように書き換える。
foreach ((array)$arr as $value) {
  // hogehoge.
}

上記の警告文はPHPのforeach文で配列データを取り出そうとした場合に、配列のデータが入っていない場合に表示されるというもので、初心者の私にはチンプンカンプンです。

とにかく、サーバーの中にあるphpファイルの2896行目に問題の箇所があるということだけははっきりしました。

実は、サーバーを息子に借りているので、自由にサーバーにアップしているファイルに手を加えることができません。

結局、作業は次の日の夜まで延期ということになりました。

いろいろと確認してみると、ログアウトした状態では「RAWデータがデコードできません」と表示され、スマホからは全く閲覧できないこともわかりました。

顔面蒼白です。

プラグイン削除で解決

wordpressのアップデート時の不具合はよくあることのようで、いろいろな記事がヒットします。

wordpressは無料で使用できる大変人気のあるソフトです。

そして多くのプラグインが無料で使用できます。

そのプラグインが不具合の原因になっているというわけです。

該当のファイルのパスをもう一度見てみましょう。
/iWarning: Invalid argument supplied for foreach() in /home/amaiame/ietore.com/public_html/wp-content/plugins/head-cleaner/head-cleaner.php on line 2895
 赤い部分がプラグインの名前です。
これに気づくまでが大変でした。
問題はhead-cleanerというプラグインを削除することで解決しました。

wordpressのバージョンアップ後の不具合解決のポイント

バージョンアップ後の不具合では、以前インストールしたプラグインが原因のことが多いです。

今回もhead-cleanerというプラグインが新しいバージョンに対応していなかったことが主な原因だったようです。

原因となるプラグインは上記の方法で確認ができます。

そのプラグインがなくても支障がないものであるなら削除することをお勧めします。

一般に、プラグインはできるだけインストールしない方向で考えるのが、表示速度の向上の面でも良いようです。

スポンサーリンク

シェアする