2017.01.13
WordPress 4.7.1にアップデートして発生したエラーの対処
目次
WordPress 4.7.1が2017年1月12日に公開され、順次アップデートしていった方も多いかと思います。その中で、弊社の動画クリエイター・松本が動画編集に関する情報発信メディア「Movie For Life」もバージョンを更新したところ、サイトのトップページに「Warning: Invalid argument supplied for foreach() in (domain)/wp-content/plugins/head-cleaner/head-cleaner.php on line 2895」というエラーが発生しました。管理画面にログインできないという緊急事態となったのですが、今回はこの事象の解決方法をご紹介いたします。
原因は、プラグイン「Head Cleaner」による影響
インターネット上で情報検索していると、どうやらHead Cleanerというプラグインを有効化しているWordPressサイトにて同現象が起きるようです。
直接サーバーにアクセスしてHead Clearの根幹ファイルの2896行目を編集すれば事態は解決するのかと思ったのですが、プラグインも日々バージョンアップしているので、エラー箇所を直接直すのも時間がかかると判断しました。
直す方法は二つ
- WordPressを旧バージョンに戻す
- Head Cleanerを停止する
どちらが恒久対策かと考えた場合、ずっとWordPressを旧バージョンにし続けるわけにはいかないので、2番の方法を選択しました。みなさまもこちらがおすすめです。一度停止し、Head Cleanerがどうしても使い続けたい場合は、開発元が問題を解決後に再度最新版をインストールすることをおすすめします。
Head Cleanerの停止手順
ここからはかなり専門的でかつ、慎重な作業となっていきます。プラグインの停止は、管理画面にログインできて操作できたら簡単なことですが、現状管理画面にログインできない状態なので、それができません。よって、データベースを直接編集し、Head Cleanerを一時停止しようと思います。
当作業をする前に、必ずデータベースのバックアップを取っておくことをおすすめいたします。また、当作業を行うと、他の動いていたプラグインも一旦すべて一時停止状態になる可能性もあるので、予めご了承ください。
動いているサイトがエラー表示されたままというのも緊急事態なので、まずはエラーを解消することが最優先と考えます。
1. phpMyAdminにログイン
契約しているサーバーによってphpMyAdminはログイン方法は違うと思いますが、契約時のメールに記載されているかと思います。まずはコントロールパネル画面に入り、phpMyAdminのログインを行うのが通常かと思います。
思わぬ落とし穴となるのが、phpMyAdminのユーザ名は分かるけどパスワードが分からない!なんてことあると思います。そんな時は、FTPでサーバーに直接アクセスし、WordPressフォルダ直下のwp-config.php内「DB_PASSWORD」にパスワードが記載されているので、こちらを参照しましょう。
2. アクティブになっているプラグインのテーブルレコードへアクセス
wp_optionsのactive_pluginsの左端にある「編集」をクリックします。
3. データベース操作で直接プラグインを停止する
ここで筆者が参照したサイトによると、下記のように書いていましたが、Head Cleanerに「a:数字」はなく、iから始まっていたので2つ目の対応だけ行いました。
- 先頭の「a:数字」の部分の数字を1減らす
- その後ろの{}内の「i:数字;s:数字:”無効化するプラグイン名”;」の部分を削除する
念のため、書き換える前にここに記載されているテキストもメモ帳にコピペしておき、何か不具合が起きた時もすぐに復旧できるようにしておくことが大事です。
WordPressの管理画面でデータベースの更新を行う
管理画面にアクセスすると、下記のような画面が表示されます。「WordPress データベースを更新」ボタンをクリックします。約数分ほど読み込みが始まりますので、待機します。
4. WordPressへログイン
ログインできるようになっているのでログインし、左メニューからプラグインページに入ります。場合によってはプラグインがすべて停止されているケースもありますので、必要に応じて有効化し直してください。Head Cleanerは開発元が問題解決をするまで有効化せず、待つことをおすすめいたします。
まとめ
これにより、管理画面にアクセスできるようになり、エラーも解消されるようになります。ただし、データベースを直接編集するのは、ある程度の知識がないと余計にWordPressを壊しかねません。できるかぎり有識者の方にお願いするか、念入りにバックアップをとりながら、何か問題が起これば元の状態に戻すようにしましょう。
記事を書いたひと
代表取締役 CEO
Web周りすべてのコンサルタント・ディレクターとしてご相談を承ります。デザイン、コーディングそしてインターネット広告の運用も私自身が手掛けておりますので、内容の濃いコンサルティングが可能です。