WordPress では管理パネルから本体のアップグレードやプラグインの一括修正を行っているときにメンテナンスモードに切り替わり、右図のような「予定に基づいたメンテナンスを行っているためしばらくの間ご利用できません。少し間をおいて再度確認してください。」という画面が表示されます。
以前、この画面を変更する tips を投稿しました。
WordPress のメンテナンスページをカスタマイズ
ですが、この画面が表示される条件を説明していなかったので、軽く紹介します。
この画面を表示するかどうかは、/wp-settings.php 内で呼び出している wp_maintenance() で決定されます。
で、この wp_maintenance() 関数が何を基準にこの画面を表示するか決定しているかというと
- WordPress をインストールしたディレクトリに .maintenance と言うファイルがあること
- WP_INSTALLING という定数が設定されていないこと
- $upgrading という変数に設定されているタイムスタンプが、現在時刻より 10 分以内であること
以上の3つの条件を満たしている場合に表示します。
意図せず、この画面が表示されてしまった場合は、.maintenance というファイルを削除すれば良いです。
では、この .maintenance というファイルの中身はどうなっているのでしょうか?
中を見てみると分かりますが、以下のような php スクリプトが書いてあるはずです。
<?php $upgrading = 1330612508; ?>
これは、$upgrading という変数にアップグレード作業を開始した時間をセットしています。
wp_maintenance() 関数の中では、この .maintenance を include() することで、アップグレードを開始した時間を取得しているのです。
これを応用すると .maintenance の中に、以下のような php スクリプトを書いておけば、一生メンテナンスモードの WordPress サイトを構築することができるようになります。
<?php $upgrading = time(); ?>
ガッテンいただけたでしょうか?