WordPress Tips

WordPress メンテナンスモードの設定方法・プラグインありなし

2015-06-24

本記事にはプロモーションが含まれています。

WordPress メンテナンスモードの設定方法・プラグインありなし

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

WordPressのコア機能として「メンテナンスモード」というものがあります。WordPressを更新中、ユーザーにメンテナンス中と表示されるものです。

この記事ではWordPressのメンテナンスモードのしくみと、メンテナンスモードを手動で設定する方法をまとめています。

この記事でわかること

  • WordPressメンテナンスモードとは何か
  • メンテナンスモードのまま元に戻らなくなったときに解除する方法
  • 手動でメンテナンスモードにする方法(プラグインあり・なし)
  • 自分以外でメンテナンスモードにする方法

WordPressメンテナンスモードとは

WordPressのメンテナンスモードは、WordPressコアファイル、プラグイン、テーマを更新中、訪れるユーザーに対して「メンテナンス中」であることを表示する機能です。

現在メンテナンス中のため、しばらくの間ご利用いただけません。

と表示されます。

メンテナンスモードはWordPressのデフォルトの機能で以下のような流れで発生します。

  1. WordPress・プラグイン・テーマのアップデートを開始するとWordPressはメンテナンスモードに入ります。
  2. WordPressのルートディレクトリに.maintenanceファイルが生成されます。
  3. .maintenanceが存在する間はWordPressはメンテナンスモードの画面になります。
  4. アップデートが終了すると、メンテナンスモードが解除され、.maintenanceは自動的に削除されます。

WordPress メンテナンスモードのままになってしまった時の解除方法

WordPressをアップデートしている最中に、画面を閉じてしまったりすると、「現在メンテナンス中のため、しばらくの間ご利用いただけません」というメッセージのまま、固まってしまって元に戻らなくなってしまうことがあります。

これを解決するには、WordPressのルートディレクトリ(wp-config.phpがある場所)にある.maintenanceというファイルを削除する必要があります。これでメンテナンスモードは解除されます。

.maintenanceファイルを削除するには、FTPまたはファイルマネージャーでサーバーにアクセスして削除します。

手動でメンテナンスモードにする方法

WordPressを自分で更新したり、リニューアルする際にメンテナンスモードにしておきたい時があります。

手動でメンテナンスモードを有効にする方法と、プラグインを使用する方法を説明します。

  1. .maintenanceを手動で設置する
  2. functions.phpに設定する
  3. プラグインでメンテナンスモードにする
  4. .htaccessで自作ページを用意してメンテナンス中にする

.maintenanceを手動で設置する

.maintenanceファイルを自分で作成して設置することでメンテナンスモードにすることができます。

step
1
.maintenanceファイルを作成します

WordPressのルートディレクトリに.maintenanceという名前でファイルを作成します。

step
2
コードを記述します

ファイルには以下のコードを記述します。

<?php $upgrading = time(); ?>

step
3
メンテナンス中

.maintenanceファイルが存在する間、WordPressはメンテナンスモードになります。

step
3
終了したらファイルを削除

メンテナンスが完了したら、このファイルを削除するか中身を空にすることで、メンテナンスモードが解除されます。

この方法は、手動でファイル設置・削除をする手間がありますが、プラグインなし、ファイルを設置するだけでメンテナンスモードにすることができます。

functions.phpに設定する

テーマ内のfunctions.phpにメンテナンスモード用の関数を設定します。

function custom_maintenance_mode() {
    if ( !current_user_can( 'manage_options' ) ) {
        wp_die( 'メンテナンス中です。ご迷惑をおかけしますが、しばらくお待ちください。' );
    }
}
add_action( 'get_header', 'custom_maintenance_mode' );

上記のコードでは、WordPressの管理者権限を持っていないユーザーにはメンテナンス中のメッセージを表示します。

プラグインでメンテナンスモードにする

3つ目はプラグインを使ってメンテナンス中にします。メンテナンスモードにするプラグインは「WP Maintenance Mode」が有名ですが、2023年に名前が変更になっています。

プラグインページで、WP Maintenance Modeで検索しても見つかりません。

現在は「LightStart – Maintenance Mode, Coming Soon and Landing Page Builder」になっています。

プラグインを有効化してからの手順が変わっているのでちょっと戸惑いますが、プラグイン自体の機能はほぼWP Maintenance Modeと同じようです。

ただし、LightStartプラグインをインストールすると、
Image optimization service by Optimole、
Otter – Page Builder Blocks & Extensions for Gutenberg
などのプラグインが追加でインストールされる場合があります。

LightStartのプラグインを有効化してからの設定手順は以下のようになります。

step
1
テンプレートの選択

Comming Soon、Maintenance Mode、Landing Pageの3つからテンプレートを選択します。テンプレートを使わないことも可能です。※最初にテンプレートを選択すると、メンテナンスモードが有効な状態になります。

メルマガ登録を促すページが表示されますが、一番下にある「I'll Skip for now」を選択するしてスキップできます。

「Go to settings」ボタンをクリックすると、メンテナンスページの移動します。

  • テンプレートは、テンプレートを使わないにしても後から選択することができます。
  • テンプレートを選択すると、Otter – Page Builder Blocks & Extensions for Gutenbergというプラグインがインストールされます。

step
2
メンテナンスページの編集

メンテナンス中に表示される固定ページが作成されるので、編集します。

メンテナンスページに載せる文章例

ただいまメンテナンス中です。

メンテナンス日時: [メンテナンスの開始日時から終了予定日時までの範囲]

いつもご利用いただきありがとうございます。
ただいまメンテナンス作業を行っております。
ご迷惑をおかけいたしますが、しばらくお待ちいただけますと幸いです。
ご理解とご協力、ありがとうございます。

step
3
メンテナンスモードの設定

  • 「一般」タブ:
    メンテナンスモードの有効・無効が制御できます。この部分以外はとくに設定しなくても問題ありません。
  • 「デザイン」タブ:
    Coming Soon, Maintenance mode, Landing Pageのテザイン済みのテンプレートを選択できます。
  • 「モジュール」タブ:
    メールアドレスを登録した人の統計やGoogle Analytics解析用の設定ができます。
  • 「ボットを管理」:
    マーケティング用のボットを管理できます。

ログアウトするかゲストモードで確認すると、メンテナンス中になっていると思います。基本的には、テンプレートを選択するかメンテナンス中ページを作成して、ステータスを有効化にすればメンテナンスモードになります。

以前はシンプルで使いやすかったですが、プラグインの開発者が変わってからマーケティング要素が強くなってしまい、使い勝手は微妙な感じです。

.htaccessで自作ページを用意してメンテナンス中にする

4つ目は、.htaccessでメンテナンス中に設定します。WordPerssに依存しない方法なので、WordPress以外のサイト、静的サイトでも利用できます。

用意するのは以下の2つのファイルです。

  • maintenance.html(ファイル名は任意)
  • .htaccess

maintenance.html

メンテナンス中のメッセージのためのHTMLです。自由に記述してください。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>メンテナンス中</title>
</head>
<body>
    <h1>只今メンテナンス中です。</h1>
    <p>申し訳ありませんが、サイトは現在メンテナンス中です。ご迷惑をおかけして申し訳ありません。</p>
</body>
</html>

.htaccess

.htaccessには以下の内容を記述します。既に.htaccessがある場合は、上書きせずに追記します。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$  #自分のIPアドレスを設定
    RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
    RewriteRule .* /maintenance.html [R=302,L] 
</IfModule>
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$ メンテナンス画面を表示しないIPアドレスを指定します。
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]リクエストURLでmaintenance.htmlを除外します。
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]画像ファイル(拡張子が jpg、jpeg、png、gif)は除外します。
RewriteRule .* /maintenance.html [R=302,L]302は一時的なリダイレクトです。

まとめ

この記事では、WordPressのメンテナンスモードとは?どのような状況で設定されるかと、メンテナンスモードを手動で設定する4つの方法ついて解説しました。

これらの手順を正確に実行することで、ウェブサイトやブログのアップデートや修理作業中に、ユーザーにメンテナンス中であることを告知し作業を円滑に進めることができます。

  • この記事を書いた人
  • 最新記事

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

-WordPress Tips