デフォルト状態の WordPress では、管理パネルから本体のアップグレードやプラグインの一括修正を行っているときにメンテナンスモードに切り替わり、左図のような「Briefly unavailable for scheduled maintenance. Check back in a minute.」という簡素な画面が表示されます。
# 2.7.x 辺りから実装された機能
これでは、あまりにもカッコ悪いので、右図のようにちょっとカッコいいメンテナンス画面を表示してあげるための Tips です。
有名サイトでも、この画面をカスタマイズしてない所はたまに見かけるので、あまり知られていないかなと思ってエントリ (^^;;;
おや、どこかで見かけた書き出し。
そう、やり方はWordPress のデータベースエラーページをカスタマイズの方法と、ほとんど同じです。
wp-content 以下に maintenance.php と言う名前でメンテナンスモード時に表示させたい PHP ファイルを置いておくだけです。
ちなみに私の所では、こんな感じの内容で maintenance.php を作成しておいてあります。
<?php header( 'HTTP/1.1 503 Service Unavailable' ); header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); header( 'Cache-Control: no-cache, must-revalidate, max-age=0' ); header( 'Pragma: no-cache' ); header( 'Content-Type: text/html; charset=utf-8' ); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>メンテナンス中 : dogmap.jp</title> <link rel="stylesheet" href="/error/style.css" type="text/css" /> </head> <body id="error-page"> <h1>503 Service Unavailable</h1> <p> ただいまサーバのメンテナンス中です。<br /> 数分後に再度リロードしてみてください。 </p> <p>ご不便おかけしますが、よろしくお願いいたします。</p> <p style="text-align: right;"><a href="https://dogmap.jp/">https://dogmap.jp/</a></p> </body> </html>
注意する所は WordPress ロード後、早い段階で表示されるので WordPress のテンプレートタグはほとんど使えない点です。
ちなみにメンテナンスモードが有効になるタイミングは、本体をアップグレードしたり、プラグインを一括アップグレードしたりするときに「メンテナンスモードを有効にします」と表示された後です。
その後、「メンテナンスモードを無効にしています」と表示されるまで、サイトにアクセスするとメンテナンスモード用の画面が表示されます。
ピンバック: 【WP】予定に基づいたメンテナンスを行っている…にチョットびっくり; | できるEDIUS