wp-login.php からログインしようとすると、以下のようなエラーが出るので直して欲しいとのご相談がありました。
Fatal error: Uncaught Error: Call to undefined function vkExUnit_register_setting() in /home/xxxx/yyyy.com/public_html/wp-content/plugins/vk-all-in-one-expansion-unit/inc/wp-title.php:16 Stack trace: #0 /home/xxxx/yyyy.com/public_html/wp-includes/class-wp-hook.php(286): vkExUnit_wp_title_init('') #1 /home/xxxx/yyyy.com/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #2 /home/xxxx/yyyy.com/public_html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #3 /home/xxxx/yyyy.com/public_html/wp-content/plugins/vk-all-in-one-expansion-unit/veu-package-manager.php(28): do_action('veu_package_ini...') #4 /home/xxxx/yyyy.com/public_html/wp-includes/class-wp-hook.php(286): veu_package_init('') #5 /home/xxxx/yyyy.com/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #6 /home/xxxx/yyyy.com/public_html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #7 /hom in /home/xxxx/yyyy.com/public_html/wp-content/plugins/vk-all-in-one-expansion-unit/inc/wp-title.php on line 16
サイトの復旧方法
ではサイトの復旧方法を順を追ってみていきましょう。
1.プラグインの無効化
/wp-content/plugins/vk-all-in-one-expansion-unit/inc/wp-title.php
がエラーを起こしているようです。まずは、このプラグインを無効化するために、当該プラグインのフォルダーをリネームします。今回は、[vk-all-in-one-expansion-unit_bak]とリネームしました。
そうすると、まずはダッシュボードにログイン出来ます。
2.データのバックアップ
WordPressのバージョンが4.9.12
vk-all-in-one-expansion-unitのバージョンが、9.6.9で最新版。
何となく、WordPressのバージョンをアップすれば、今回のトラブルは解決しそうに感じましたが、念の為、ファイル群のバックアップを取ります。うっかり、WordPressをバージョンアップしてしまうと、他のプラグインが最新版のWordPressに対応していない場合、別のエラーが発生して、サイトが閲覧出来なくなる可能性もある為です。
バックアップの時に重宝するのが、zip.php です。これを使うと、ドメイン内にあるファイル群を、全てzipファイルに圧縮してくれます。
無事に圧縮出来ました。
次に、データベースのバックアップです。 [WP-DBManager] というプラグインを使います。無事にデーターベースのバックアップも取れました。
ファイル群のzipと、データベースのバックアップをダウンロードして、パソコンへ保存します。
3.ローカル環境の構築
バックアップは取りましたが、このまま、WordPressのバージョンを上げるのは怖いので、先ほど作ったファイル群を使い、[xampp]を使って、ローカル環境を立ち上げます。立ち上げ方は、割愛します。興味のある方は、お問い合わせ下さい。
4.WordPressやプラグインのバージョンアップ
ローカル環境に設置したサイトを使って、WordPressやプラグインのバージョンアップを行います。
まずは、WordPressのバージョンアップ。このサイトの場合、バージョンアップしてみましたが、特にエラーは発生しませんでした。
次に、先ほど、[vk-all-in-one-expansion-unit_bak]とリネームしたファイルを、[vk-all-in-one-expansion-unit]に戻して有効化します。
その後、サイトからログアウトして、再度ログインしてみます。エラーが発生せずに問題無く、ログインが出来る事を確認しました。
5.他のプラグインも最新版へ
他のプラグインも、最新版へ更新します。この際、一度に全て更新するのは、オススメしません。何故ならば、新たなエラーが発生した場合、どのプラグインが原因だったかを検証する必要があるからです。
2?3個ずつ有効化していきます。問題が発生しないことを確認したら、次の2?3個を有効化します。
問題無く、全てのプラグインを最新版へ更新出来ました。これで、安心して、本番環境のWordPressを最新版へ更新できます。
6.本番環境のWordPressを更新
ローカル環境で検証したので、後は、以下の手順でOKです。
- WordPressを最新版へ更新
- [vk-all-in-one-expansion-unit_bak]とリネームしたファイルを、[vk-all-in-one-expansion-unit]に戻して有効化
- プラグインを全て最新版へ更新
これらの手順を行ったところ、今回は、トラブル無く復旧出来ました。
まとめ
今回のエラーは、WordPressのバージョンが4系統だったことが原因でした。もし、同様のエラーが出ている場合は、5系統へバージョンアップしてみてください。
しかしながら、上にも書きました通り、プラグインが5系統に対応していないような場合は、また新たなエラーが発生します。
もしご不安でしたら、私までお問い合わせ下さい。
有償とはなりますが、 4000円(税別)/30分 にて復旧のサポートをします。