WordPressで「別の更新が現在進行中です。」が出る時の解決方法3つ。

2022-06-27

Wordpress-別の更新が現在進行中です_eyecatch

WordPressの更新時に「別の更新が現在進行中です。」という文字が出て更新が止まってしまう時の対処方法3つです。

この内容は、WordPress本体のアップデートやダウングレードの更新が進行中であることを示すものですが、詳細が出ないので初めて見ると?になります。

このエラーを解決するのは簡単で、15分待つだけでOKです!
また、functions.phpやphpMyAdminを使ってデータベース内のオプション値を削除することにより、強制的に更新ロックを解除する方法もご紹介します。

原因はWordPressの更新ロックという更新処理の重複を防ぐ機能にあります。

「別の更新が現在進行中です。」の解決方法

WordPressでは、更新を連続で行おうとした時に「別の更新が現在進行中です。」というエラーが出ます。エラーというか説明ですね。

Wordpress-別の更新が現在進行中です_001

更新を押した後に出た「別の更新が現在進行中です。」の文字

今回はWordpressをVer5.9.3にダウングレードした後、すぐにVer6.0にアップデートしようとした時に「別の更新が現在進行中です。」が出ました。

調べたところ「別の更新が現在進行中です。」の主な解決方法は以下の3つ。

  1. 更新後、15分待ってから更新ボタンを押す。
  2. functions.phpでcore_updater.lockを削除する。
  3. 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!

これでデータベースから更新ロックに関するオプション値が削除されるので、コードの追記後に更新処理を行えば「別の更新が現在進行中です。」と出ることなく普通に更新できるはずです。

ポイント

コードは更新作業が終わったら削除して下さい。

なおdelete_option関数については以下に説明があります。

外部リンク

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';

コピペでそのまま使えます。

Wordpress-別の更新が現在進行中です_002

WordPress用DBで削除クエリを実行すればOK!

クエリを実行すれば「core_updater.lock」が削除されます。

phpMyAdminで手動で削除する方法

クエリの実行が不安な方は手動で削除することもできます。

Wordpress-別の更新が現在進行中です_003

WP用DB>wp_options>option_name>core_cpdater.lockを検索

まずデータベース内から「core_cpdater.lock」を検索しましょう。

Wordpress-別の更新が現在進行中です_004

core_updater.lockが見つかったら削除する

「core_cpdater.lock」が出てきたらそのまま削除を押します。

Wordpress-別の更新が現在進行中です_005

削除クエリの実行確認画面

削除クエリの実行確認画面が出るので、確認して進みます。

Wordpress-別の更新が現在進行中です_006

「core_cpdater.lock」が削除された

「core_cpdater.lock」が削除されればOKです。

更新ロックを解除したら再度更新する

上記のいずれかの方法を行ったあと、再度管理画面から更新作業を行いましょう。

Wordpress-別の更新が現在進行中です_007

いつも通り更新が進むはずです。

更新ロックのコードはコアファイル内にある

最後に「別の更新が現在進行中です。」が出る原因となったコードが記述されている場所についてです。

Wordpressの更新ロックのコードは以下のコアファイル内にありました。

wp-admin/includes/class-core-upgrader.php

Wordpress-別の更新が現在進行中です_008

「class-core-upgrader.php」を開くと、120行目あたりに15分間更新を自動ロックするコードの記述があることが確認できるはずです。

Wordpress-別の更新が現在進行中です_009

class-core-upgrader.php

15 * MINUTE_IN_SECONDSとあるのが15分という指定です。



まとめ

以上、Wordpressの更新時に「別の更新が現在進行中です。」という画面が出る原因とその対処方法3つでした。

長々書きましたが、15分待てばOK!
待てない人はfunctions.phpを使えば早いです。
何かの理由でダメならphpMyAdminからcore_updater.lockを削除しましょう。

最後にアレですが、Wordpressを更新した後15分以内にまた更新するという内容はレアケースかもしれません。何らかの原因で更新に失敗して途中で止まってしまった場合も自動で更新ロックがかかるらしく、その時の対処方法にもできるかもです。

-WordPress
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku