WordPressでサイトをメンテナンスしたい場合、
- アクセスして来たユーザーに対しては、メンテナンスのメッセージを表示する。
- 自分は、いつも通りWordPressの管理画面/フロント画面を操作・表示できる。
という感じにする方法を紹介します。
メンテナンスモードにするプラグインが存在しており、それを使用するのも良いですが、使う機会が限られているプラグインをインストールしたままというのは、無駄な気もします。
functions.phpに以下のコードを追記するだけで、メンテナンスモードに出来ます。
/* メンテナンス表示 */
function maintenance_mode() {
if (!current_user_can('edit_themes') || !is_user_logged_in()) {
wp_die('ただいまメンテナンス中です。');
}
}
add_action('get_header', 'maintenance_mode');
get_headerにフックをかけ、テンプレートを読み込む直前に関数「maintenance_mode」が実行され、
WordPressにログインしていない場合、メンテナンスモードの表示を行います。
WordPressにログインしていれば、通常通り、操作と表示が行えます。
メンテナンスが終了したら、以下のコードをコメントアウトします。
// add_action('get_header', 'maintenance_mode');
以上となります。
WordPressの管理者は大抵ログアウトすることはせず、常にログイン状態であることが多いので、上記のコメントアウトをするということを忘れていると、自分はいつも通り表示出来ているが、他人からはいつまでもメンテナンス中と思われますので、その点ご注意ください(笑)