WordPress

WordPress4.6更新失敗で接続不可に!?

WordPress 4.6がリリースされたので、いつものように更新からアップデートしたところ、失敗したようです。

不具合の症状



  • 既に更新ボタンを押しても接続できない
    Google Chromeでは接続できない表示、Safariでは画面が真っ白で何も表示されない

  • 管理画面のプラグインも表示できない

  • 他のブラウザでログインを試みてもログイン画面すら表示されない

  • 記事投稿でエラーが出る
    (記事の投稿はできているようだが、サムネイル画像が表示されない)


更新作業を行った順序



  • 各プラグインを更新

  • テーマを更新

  • WordPress本体の更新 (4.5.xから4.6へ)


プラグインとテーマ更新は問題なく行えたのですが、WordPress本体の更新で完了が出ず、「接続出来ません」とブラウザに表示された。

調査



  • 更新が実行されたと思われるファイルを確認すると、日付が更新されているので、更新されているように見える

  • なぜかDB-Managerのプラグインは機能するので、すぐにDBのバックアップをとる

  • バックアップを取った後、DBの修復や最適化を試みるとDB自体は問題なさそう

  • デバッグを有効にしてみる


デバッグの方法
https://codex.wordpress.org/Debugging_in_WordPress

原因の特定


デバッグを有効にしてみたところ、下記のようなエラーが表示された。
Strict Standards: Redefining already defined constructor for class WP_Table_Reloaded_Controller_Admin in xxx/wp-content/plugins/wp-table-reloaded/controllers/controller-admin.php on line 128 Strict Standards: Redefining already defined constructor for class WP_Table_Reloaded_Controller_Base in xxx/wp-content/plugins/wp-table-reloaded/controllers/controller-base.php on line 98 Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method wp_meta_robots_plugin::meta_robots_addcolumn() should not be called statically in xxx/wp-includes/plugin.php on line 524 Notice: has_cap がバージョン 2.0.0 から非推奨になった引数付きで呼び出されました。プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。

DBは問題ないようで、プラグインが原因のようなので、一旦、プラグインを全て無効にしてみた。

管理画面のプラグインが表示されないので、wp-content/pluginsのディレクトリ名を一時的に変更して、再度、管理画面にアクセスしたところ、更新が表示された。

1度、更新が失敗しているので、WordPress本体を再度インストール実行すると成功

そして、一時的に変更したプラグイン名を戻す

これらから推測すると、どうやらプラグインが悪さをしていると判断

解決策


一時的に変更したプラグインのディレクトリ名を元に戻すと、WordPress側の管理画面ではプラグインが全て無効化されてました。

なので、デバッグを有効にしたまま、少しずつプラグインを有効化して、プラグインの影響を確認していきました。

原因となったプラグイン


私の環境の場合、結果、下記のプラグインが不具合の影響を促していたようです。

  • batch-cat

  • smart-update-pinger

  • wp-table reloaded

  • wp_meta_robots_plugin


何れも、「has_cap」問題により、既に2年ほど前の注意喚起なので、放置していたのがバレバレです。(^_^;)
has_capの対策については、下記ブログの記事に詳しく書かれていますので、対処可能です。

また、wp-table reloadedは、数年前からTablePressに入れ替わってました。

https://tablepress.org/

あとがき


いつもながら、WordPress本体・プラグイン更新で、アクセス不具合に陥ると、ヒヤヒヤさせられます。
更新前には、必ずDBのバックアップは取るようにしておきましょう! < 自分

ついでに、テーマも現時点で最新のSimplicity 2.2.7にアップデートしておきました。

error