WordPress4.7.1にアップデートしたらWarning: Invalid argument supplied for foreach()が大量に出て焦った話

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

WordPressを何も考えずに更新したらエラーがたくさん吐き出されました。

少し焦りましたが、何とか復旧できたのでその時のメモ。

PR

出てきたエラー

WordPressを4.7.1にアップデートすると、以下のエラーが4行吐き出されました。

明らかにhead-cleanerが悪さをしています。

対処法

Warning: Invalid argument supplied for foreach()が出た時はforeach文に対して配列とオブジェクト以外を指定した時みたいです。

プラグインの中身を理解するのは面倒なので該当部分だけ書き換えます。

2895行目の

こいつを、

こうします。

これでエラーはなくなりました。

プラグインのページにアクセスできない!?

エラーはなくなったのですが、今度は管理画面からプラグイン一覧を見ようとすると「現在メンテナンス中のため、しばらくの間ご利用いただけません」の文字が表示されるようになりました。

これは調べてみると、どうやら.maintenanceファイルがあるから発生するようです。

PR

じゃあ.maintenanceを消せばいいじゃない

.maintenanceファイルを消せば良いということで.maintenanceを探してみるも見つからない。

最終的にssh接続してfindコマンドでサーバー全体を探してみたけど見つからない。

どうすればいいのか途方にくれていた時に思いつきました。

とりあえずプラグインを一回全部アンイストールしてみよう。

プラグインを一時退避

FTPクライアントでサーバーに接続し、適当なところにtmpフォルダを作って、pluginディレクトリ配下を全部tmpに移します。

その状態で管理画面からプラグイン一覧を見ると「現在メンテナンス中のため・・・」が表示されなくなり、プラグイン一覧が表示されるようになりました。(プラグインを全て移動させているのでプラグインはありませんが)

原因特定のため、プラグインを1つずつ段階的にpluginフォルダに戻しては有効化、戻しては有効化していきましたが結局再発せず。

何が原因かは分かりませんが解決できたので良しとしましょう。

PR

この記事が気に入ったら
いいね ! しよう

Twitter で
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。