WordPressの更新時に「別の更新が現在進行中です。」という文字が出て更新が止まってしまう時の対処方法3つです。
この内容は、WordPress本体のアップデートやダウングレードの更新が進行中であることを示すものですが、詳細が出ないので初めて見ると?になります。
このエラーを解決するのは簡単で、15分待つだけでOKです!
また、functions.phpやphpMyAdminを使ってデータベース内のオプション値を削除することにより、強制的に更新ロックを解除する方法もご紹介します。
原因はWordPressの更新ロックという更新処理の重複を防ぐ機能にあります。
この記事の目次
「別の更新が現在進行中です。」の解決方法
WordPressでは、更新を連続で行おうとした時に「別の更新が現在進行中です。」というエラーが出ます。エラーというか説明ですね。
今回はWordpressをVer5.9.3にダウングレードした後、すぐにVer6.0にアップデートしようとした時に「別の更新が現在進行中です。」が出ました。
調べたところ「別の更新が現在進行中です。」の主な解決方法は以下の3つ。
- 更新後、15分待ってから更新ボタンを押す。
- functions.phpでcore_updater.lockを削除する。
- phpMyAdminでデータベース内のcore_updater.lockを削除する。
原因はWordpressに初期設定されている更新ロックという機能によるものです。
これはコアファイルの更新処理を重複させないようにする保険のようなものです。
WordPress更新後は次回更新まで15分待つ
Wordpressのコアファイルを確認したところ、更新後はそのあと15分経つまで更新機能をロックするというコードが記述されていました。
なので15分以上待った後、再度更新ボタンを押せば普通に更新できるはずです。
以上です。
…と言いたいところですが、せっかくなので当記事ではfunctions.phpにコードを追記して更新ロックを強制解除する方法や、phpMyAdminでデータベースを操作して解決する方法を詳しく書きます。
さらに後半では、コードの場所や中身についても少し触れます。
興味がある人は少ないと思いますが、15分待っている間にでもお読みいただければ丁度よい時間になるかと思います・w・
functions.phpでcore_updater.lockを削除する
“15分も待ってられない!”という状態の方にお勧めなのが以降の方法です。
まずはWordpressのfunctions.phpにコードを追記して、データベース内のオプションテーブルから「core_updater.lock」を削除して更新ロックを解除する方法です。
この記事は現在の環境であるWordpress4.5以降を想定しています。
オプションレコードの参考
- WordPress4.5以降:「core_updater.lock」
- WordPress4.5まで:「core_updater」
Wordpressのバージョンによってレコード名が異なるので、参考までに。
後述するphpMyAdminを使う方法はデータベースを操作するので少し敷居が高いですが、functions.phpなら編集したことがあるという人は多いのではないでしょうか?
これくらいの作業なら15分待つよりも早いかもしれませんね。
functions.phpに追記するコード
実際に使用するコードは以下です。
functions.php
delete_option( 'core_updater.lock' );
このコードを子テーマ内のfunctions.phpに追記するだけでOK!
関連記事
【functions.phpについてはこちら】
WordPressのfunctions.phpとは?場所と編集方法、コードの書き方を初心者向けに解説します。
これでデータベースから更新ロックに関するオプション値が削除されるので、コードの追記後に更新処理を行えば「別の更新が現在進行中です。」と出ることなく普通に更新できるはずです。
ポイント
コードは更新作業が終わったら削除して下さい。
なおdelete_option関数については以下に説明があります。
外部リンク
【delete_optionの参考】
delete_option() | Function | WordPress Developer Resources
phpMyAdminでcore_updater.lockを削除する
続いてデータベースの管理ツールである「phpMyAdmin」を使って、データベース内の「core_updater.lock」を手動で削除することで更新ロックを解除する方法です。
こちらの方法はデータベースの操作が必要になるので、手間とリスクを考えると実際に使うことは殆どない方法ですが、見ていきましょう。
削除する「core_updater.lock」は以下の場所にあります。
WordPress用データベース>wp_options>option_name>core_updater.lock
メモ
core_updater.lockは更新ロック時に生成され、更新完了後に削除されるという様子でした。なので更新が終わっている状態だと多分見つかりません。
phpMyAdminでクエリを実行する方法
該当レコードまで手動で進んで削除してももちろん良いのですが、削除クエリを実行すると速いです。
Wordpressに使っているデータベースを選択したあと、phpMyAdminの「クエリ」というところで以下のクエリを実行すればOKです。
delete from wp_options where option_name = 'core_updater.lock';
コピペでそのまま使えます。
クエリを実行すれば「core_updater.lock」が削除されます。
phpMyAdminで手動で削除する方法
クエリの実行が不安な方は手動で削除することもできます。
まずデータベース内から「core_cpdater.lock」を検索しましょう。
「core_cpdater.lock」が出てきたらそのまま削除を押します。
削除クエリの実行確認画面が出るので、確認して進みます。
「core_cpdater.lock」が削除されればOKです。
更新ロックを解除したら再度更新する
上記のいずれかの方法を行ったあと、再度管理画面から更新作業を行いましょう。
いつも通り更新が進むはずです。
更新ロックのコードはコアファイル内にある
最後に「別の更新が現在進行中です。」が出る原因となったコードが記述されている場所についてです。
Wordpressの更新ロックのコードは以下のコアファイル内にありました。
wp-admin/includes/class-core-upgrader.php
「class-core-upgrader.php」を開くと、120行目あたりに15分間更新を自動ロックするコードの記述があることが確認できるはずです。
15 * MINUTE_IN_SECONDSとあるのが15分という指定です。
まとめ
以上、Wordpressの更新時に「別の更新が現在進行中です。」という画面が出る原因とその対処方法3つでした。
長々書きましたが、15分待てばOK!
待てない人はfunctions.phpを使えば早いです。
何かの理由でダメならphpMyAdminからcore_updater.lockを削除しましょう。
最後にアレですが、Wordpressを更新した後15分以内にまた更新するという内容はレアケースかもしれません。何らかの原因で更新に失敗して途中で止まってしまった場合も自動で更新ロックがかかるらしく、その時の対処方法にもできるかもです。










