wordpress:メンテナンスモードを固定ページを使って作成。WordPress2019/10/020Workswordpress:メンテナンスモードを固定ページを使って作成。日時指定もできるようにする先日消費税増税に伴うサイトの更新をいくつか行いました。その際、サイトをメンテナンスモードにして行ったのですが、これ管理画面から設定できたほうがいいよなと思い作ってみました。いう風作っておけばクライアント側でも設定できますしね。プラグインもありますが、そこまで高機能なものが欲しいわけではないので簡単にやってみました。メンテナンスモードの概要メンテナンス中はこんな感じの表示にします。カスタマイズする内容はこんな感じ。テキスト内容は固定ページの任意のページで作成するメンテナンスモード有効/無効を選択できるようにするメンテナンス開始と終了の日時指定をできるようにするではやっていこう!メンテナンスモードの作成メンテナンスモードとは言いますが、wordpressの機能wp_die()で出力されるエラーページを便宜上メンテナンスページとして使用します。固定ページを作るメンテナンスページ用の固定ページを作成します。スラッグはmaintenanceにしておいてください。別なスラッグでもいいですが、違うものにした場合は次に説明する関数内のページ呼び出し部分で設定しているスラッグを変更してください。適当なタイトルと本文を入力してください。状態は非公開にしておいてください。関数作成まずはfunctions.phpにメンテナンスモード実行用の関数を作成します。'custom_maintenance_mode');コメント書いてる通りですがざっと説明していきます。カスタムフィールドの詳細は後で説明します。管理画面にログインしている場合は何もしません。使用して分岐をかけてください。6行目メンテナンス用の固定ページデータを取得します。スラッグはmaintenanceで呼び出していますが、別のスラッグでページを作成した場合はここを書き換えてください。ページが見つからない場合は何もしません。12行目カスタムフィールドのメンテナンス有効値を取得し、チェックがなければなにもしません。開始時間や終了時間が設定してなければ適当な時刻を代入します。現在の日時が開始日時以上の場合かつ現在の時刻が終了時刻未満の場合にメンテナンスモードを実行します。30行目エラーページに追加するCSSを設定します。画像に関するものなので、画像を使わない場合はこの項目は不要です。32行目メンテナンスモードのタイトル部分は固定ページのタイトルを使います。34行目メンテナンスモードの本文は固定ページの本文を使います。36行目wp_die()でエラーページを出力します。引数1番目に出力内容、2番目にサイトタイトルを入れます。2番目の引数を設定しない場合「エラー」表示になります。41行目アクションフックget_headerに上記の関数をセットします。これでget_header()が呼び出された時にこの関数が実行されます。get_header()を使わないページがある場合はフックをwpにし、is_admin()で分岐させればいけると思います。自作してもいいし別のプラグインでも指定した型で日時を登録できるのならなんでもOKです。Picker」にします。H:i:s」にします。Pickeは値の入力時にデートピッカーとタイムピッカーを表示してくれるので入力が楽。設定したカスタムフィールドを最初に作成した固定ページにのみ表示させるようにします。タイトルが表示されてますが、内部では記事IDで判別してるので固定ページのタイトルを変更しても大丈夫です。使い方カスタムフィールドを設定した後に作成した固定ページの編集画面にいくと下記のようになりますのでそれぞれ設定してください。入力されていてもメンテナンスモードにはなりません。どちらかだけの設定も可能で、開始時間だけの設定や終了時間だけの設定が可能です。両方とも入力がなければ常にメンテナンスモードです。スマホサイズの表示もOK!※関数でcssを設定しないと画像が縮小されずにはみ出します。デモサイトで確認しながらやりましたが、おかしいところあればコメント等でご連絡ください。Form:セレクトに「選択してください」を追加する。確認画面や送信メールの調整も。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。