WordPress に関するエラーは数多くありますが、wp-admin や wp-include といったテーマやプラグイン以外の WordPress 本体のディレクトリやファイルへのパスがエラーログ内に表示されているケースのエラーの場合についての対応方法をご紹介します。
※今回ご紹介の内容とは異なる対応方法となる場合もありますので、解決方法の一つとしてご参考ください。
目次
wp-admin や wp-include といった WordPress 本体に関わるエラーの原因は何か
例えば、プラグインであれば wp-content 内にある plugins に各プラグインが格納されているため、プラグインに関わるエラーログには wp-content/plugins/プラグイン名 といったように「wp-content ディレクトリ」が表示されています。また、利用中のテーマに関わるエラーの場合は wp-content内にある themes にテーマファイルが格納されており、テーマに関わるエラーログは wp-content/themes/テーマ名 というようにこちらも「wp-content ディレクトリ」が表示されます。
一方、wp-admin や wp-include ディレクトリは wp-content と同階層にあるディレクトリとなり、WordPress の本体を格納しているディレクトリとなります。基本的にはカスタマイズ領域ではないため、このディレクトリが表示されているエラーの場合は WordPress 本体に由来するファイルが原因となっている可能性があります。
どういったタイミングでこのエラーが発生するかを見てみましょう。
WordPress 本体のアップデートを行った直後
新しい WordPress のバージョンに更新できますという表示がされ、更新ボタンが有効になっています。
この状態から更新ボタンを押すと WordPress のアップデートが自動的に始まりますが、更新中にエラーが発生すると正しく更新が行われません。
今回は wp-admin配下の update-core.php ファイルに対してエラーが発生しています。念の為フロント側にアクセスしてみると、エラーメッセージは表示されていないものの、レイアウトが崩れていました。
気がついたらエラーが発生していた
別の例として、WordPress の更新や特定のプラグインを更新したということでも無いのに、気がついたら「このサイトで重大なエラーが発生しました。」というメッセージが表示されサイトが一切表示されないケースや、ヘッダーやコンテンツ上部など一部は表示されるものの、特定の箇所から下が一切表示されないケースなどの場合。
特定のプラグインを有効化した直後にエラー発生した場合は該当プラグインが原因である可能性が高いなどと、原因が比較的推測しやすいですが、特に何もしていない場合は全く検討がつかないということも有りえます。こういうケースは焦りますね……。
その場合はまずはエラーログを確認し、どのようなエラーが発生しているか確認しましょう。エラーログが表示されていない場合はデバッグモードを有効化します。
参考: テスト環境や開発環境を用意したら有効化しておきたいデバッグモード
エラーログに wp-admin, wp-include 等のディレクトリ内のファイルが表示されている前提ですが、直前に特に作業をしていないのに突然エラーが発生している場合においても、前項と同様にWordPress 本体のアップデートが原因である可能性があります。
自動アップデートによって WordPress のアップデートが行われたものの、WordPress の更新時にサーバーエラー等何かしらの理由で更新が最後まで正しく行われなかったことに起因する WordPress ファイルの不足等が考えられます。
このように重大なエラーとしてエラーメッセージが表示される場合もあれば、エラー内容が吐き出されているケース、またはフロント側はエラーメッセージはないもののレイアウト崩れが発生し、管理画面側でエラーメッセージが表示されているケースなど様々です。
WordPress コアの更新に起因するエラーの修復方法
いずれも上記のようなエラーの場合、エラーログには wp-admin, wp-include ディレクトリ内のファイル名が表示されていることが今までの経験上ありました。その際行ったことの例です。
- 全プラグインの停止 → 変化無くエラー継続
- 更新可能なプラグインの更新 → 問題なく更新は成功するもののエラー継続
- WordPress コアの更新 →「別の更新が現在進行中です」が表示されている or 画面に何も表示されず更新不可
このような場合に限りますが、WordPress の更新が原因となっているため、WordPress 本体の更新を正しく行うことで解決します。ただ、更新がうまく行かないため更新したくてもできないという状態。「別の更新が現在進行中です」と表示されていたり、更新画面に何も表示されず更新できないという時は WordPress コアが他の更新をできように一時的にロックする機能が働いていますが、本来ならば削除されるロックが削除されず残ってしまっているため、ロックを削除してあげることで解決します。方法を3つご紹介します。
1. プラグイン「Fix Another Update In Progress」を利用する
ロックを削除してくれる簡単な方法としてプラグインがあります。
Fix Another Update In Progress – WordPress プラグイン | WordPress.org 日本語
ただし2020年7月を最後にプラグインの更新が途絶えており、WordPress 5.4より後はテストされていません。6.1 環境で利用したところ問題なく使えましたが、自己責任でご利用ください。
プラグインインストール&有効化後、設定→「Fix Another Update In Progress」にアクセスすると「ロックされている」というような表示です。「Fix WordPress Update Lock」ボタンをクリックしてロックを解除します。
あとは WordPress コアを通常通り更新すれば無事完了です。
2. phpmyadmin 等のDBツールより手動で削除
phpmyadmin や Adminer 等のツールが利用できる場合は直接該当する DB を削除することでも解決します。今回は Adminer の画面ですが、phpmyadmin も同様です。
wp_options テーブルを選択後、「core_updater.lock」文字列で検索するとヒットしました。
あとはこの該当したデータを削除(Adminer の場合チェックして「削除」)すれば WordPress コアが更新できるようになります。
3. WP CLI より手動で削除
コマンドラインインターフェイスである WP CLI を使って DB を削除する方法です。コマンドを触ったことがないと扱いは難しいかもしれませんが、操作は簡単です。
wp option delete core_updater.lock
と入力し実行すると、正しく削除できると Success: Deleted 'core_updater.lock' option.
と表示され完了です。
ちなみに「WP CLI 経験ないけど触ってみたい」と思っていれば、手始めに検索置換機能から覚えると WordPress サイトの引っ越し作業が効率よくできるのでおすすめです。
参考: WP CLI は検索置換機能だけでも使う価値のあるツール
エラーが発生しても落ち着いて対処すればOK
以上、WordPress コアの更新に関係するエラーの対処方法の紹介でした。他の発生ケースがあればコメントよりお知らせください。
冒頭でも書きましたが、WordPress を運用していると色々なエラーが発生します。エラーといっても今回のような WordPress 本体に関係するのか、利用しているプラグインが古いのか別のプラグインとバッティングしているのか、テーマをカスタマイズしていてその領域で発生しているのか……等。
共通するのはエラーが発生してもまずは落ち着くこと。そしてエラーログを出力させて内容を確認してエラーの原因をたどっていけば必ず解決に繋がります。
とはいえ、こういったエラー対応は非技術者の方が取り組んで解決するというのはなかなか現実的に難しいと思うので、そういう場合は制作会社や作ってくれた方に連絡し、エラーの相談をするとともに、今後運用していくにあたってこういったエラーは起こるものと想定し、発生したときにどうやって解決するのかというのを事前に決めておきましょう。テスト環境を構築しておくのも安心です。
参考: WordPressのテストサイト・検証用環境の作り方
弊社では WordPress サイトの保守・管理サポートを提供しており、他社制作の WordPress も対象でテスト環境の構築も行います。制作会社に連絡がとれない、対応が難しいといった場合はお気軽にご相談ください。
コメントを残す