特定時間外はページを非表示にする方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

WordPressサイトを運営する中で、「平日だけ特定の営業時間内にページを公開し、それ以外の時間や休日は閲覧できないようにしたい」というケースは多いです。

例えば、平日の10時から18時だけ予約受付ページを開き、営業時間外は訪問者に「クローズ中」の案内を表示したい場合などが典型的です。

平日の決まった時間だけページを公開し、それ以外の時間帯は管理者のみアクセスを許可、その他のユーザーにはメッセージを表示してページを非表示にします。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。

add_action('template_redirect', function () {
  // 権限チェック
  if (current_user_can('administrator')) {
    return;
  }

  // 制限したい時間帯(24時間形式)
  $start_time = '10:00';
  $end_time   = '18:00';

  // 現在の曜日と時刻
  $now_time    = current_time('H:i');
  $now_weekday = current_time('w'); // 0:日曜, 1:月曜 ... 6:土曜

  // 平日(月〜金)かどうか判定
  $is_weekday = ($now_weekday >= 1 && $now_weekday <= 5);

  // アクセス許可条件の場合
  $is_allowed = ($is_weekday && $now_time >= $start_time && $now_time <= $end_time);

  if ($is_allowed) {
    return;
  }

  wp_die(
    '<p style="text-align:center;font-size:1.2em;">クローズ中です。<br><strong>' .
    esc_html($start_time) . ' ~ ' . esc_html($end_time) .
    '</strong> の平日に再度お越しください。</p>',
    '現在閉鎖中',
    ['response' => 503]
  );
});

さいごに

今回紹介した方法を使えば、WordPressサイトで平日の特定時間のみページを表示し、それ以外は自動的に非表示にできるようになります。
営業時間のあるサービスや平日のみ稼働するサイトで、訪問者に正確な案内を出すのに役立つシンプルかつ効果的な方法です。

タイトルとURLをコピーしました