WordPressの「メンテナンスモード」をfunctions.phpで制御し「メンテナンスページ」を表示
以前「WordPressの「メンテナンスモード」をfunctions.phpで作成」でも紹介したのですが、functions.phpのみで実装しているため”細かいレイアウトがしずらい”といった点が気になっていました。そのため、functions.phpでメンテナンスページの表示制御だけを行い、指定のメンテナンスページを開く仕様に変更したバージョンをご紹介します。
Index
― 目次 ―「メンテナンスモード」の制御をfunctions.phpで作成
functions.phpに「メンテナンスモード」の制御を記述していきます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// メンテナンス時に専用画面を表示:管理画面ログイン時は編集画面の確認が可能 → メンテナンス終了後はコメントアウト function theme_maintenance_mode() { // 管理者権限でログインしていないユーザーに対してメンテナンス画面を表示:編集者も許可したい場合 → edit_pagesに変更 if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) { // ドキュメントルートを指定:ABSPATH → WPのインストールディレクトリ $maintenance_file = ABSPATH . 'maintenance/maintenance.html'; if ( file_exists( $maintenance_file ) ) { require_once( $maintenance_file ); die(); } } } add_action('get_header', 'theme_maintenance_mode'); |
[補足]
4行目が「管理者権限がないユーザー」または「管理画面にログインしていないユーザー」という内容。
※「edit_themes」は編集者権限ですが、編集者とは違い管理者ですので、編集者も許可したい場合は「edit_pages」に変更します
管理者で管理画面にログインしている場合には通常の画面(編集中の画面)、ログインしていない場合にはメンテナンス画面が表示されます。
6行目で「ドキュメントルート」を指定します。
※ABSPATHは「WPのインストールディレクトリ」ですので注意してください
あとは、サーバーにHTMLで作成した「メンテナンスページ」をアップします。
※この場合「WPのインストールディレクトリ/maintenanceディレクトリ/maintenance.html」となります。
4行目が「管理者権限がないユーザー」または「管理画面にログインしていないユーザー」という内容。
※「edit_themes」は編集者権限ですが、編集者とは違い管理者ですので、編集者も許可したい場合は「edit_pages」に変更します
管理者で管理画面にログインしている場合には通常の画面(編集中の画面)、ログインしていない場合にはメンテナンス画面が表示されます。
6行目で「ドキュメントルート」を指定します。
※ABSPATHは「WPのインストールディレクトリ」ですので注意してください
あとは、サーバーにHTMLで作成した「メンテナンスページ」をアップします。
※この場合「WPのインストールディレクトリ/maintenanceディレクトリ/maintenance.html」となります。
「メンテナンスページ」のイメージ
- 当サイトの「メンテナンスページ」 -
メンテナンスページが必要な「Webサイトのリニューアル公開時」「大幅なWebサイトの改修」「日々のメンテナンス」「WordPress本体のアップデート時」「プラグインのアップデート時」などの参考になれば幸いです。
関連キーワード