SHU BLOG

BLOG NEWS

TITLE

【WordPress】日時条件分岐で段階公開する方法について

SHU[シュウ]

1991年生まれ九州の宮崎県育ち
高校卒業後、愛知県で自動車関係の
お仕事に5年間勤め、WEB業界に
転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画
基本インドアです!

サーバーとドメインの同時取得で.jpが無料

シュウ
シュウ
今回は【WordPress】日時条件分岐で段階公開する方法についての解説になります!

こんな方に読んでほしい

  • 公開日時に合わせて表示内容を条件部で自動で切り替えたい方へ
  • WordPressの予約投稿では対応できず困っている方へ
  • PHPの条件分岐で日時制御を実装したいWeb制作者へ

日時条件分岐で段階公開について

日時条件分岐で段階公開について

公開日やキャンペーン開始時間に合わせて、WordPressの表示内容を自動で切り替えたい場面は多くあります。
本記事ではPHPの条件分岐を使い、手動更新なしで表示を変更する方法を解説します。
まずは実際によくある利用シーンを見てみましょう。

よくある使用シーン
  • キャンペーン開始時間の切替
    指定時刻になったらバナーを自動表示。
  • 年末年始・期間限定表示
    特定期間だけ内容変更。
  • 段階的な情報公開
    ティザー → 本公開 → 第二弾公開など。

今回は、前回と「日時切替」の応用編になります。前回の記事を合わせて、ご確認ください。

オススメの記事

公開日時に合わせて表示内容を自動で切り替えたい方へ

日時条件分岐の基本コードについて

日時条件分岐の基本コードについて

まずは日時を取得し、比較できる状態を作ります。ここが全てのベースになります。

1.現在時刻を取得する
サーバー環境によっては時刻が日本時間とズレる場合があります。まずはタイムゾーンを明示的に設定します。
date_default_timezone_set('Asia/Tokyo');
$now = new DateTime()
2.テスト用に時間を変更できる仕組み(重要)
公開日時を待たずに表示確認をしたい場合は、URLパラメータを利用すると便利です。
制作時のテスト効率が大きく向上します。
<!-- 2026-01-10+09:00 表示 -->
https://example.com/?time=2026-01-01+09:00
<!-- 2026-01-10+09:00 切り替え内容が表示-->
https://example.com/?time=2026-01-10+09:00

2段階公開の実装方法について

2段階公開の実装方法について

まずはシンプルな「公開前 → 公開後」の2パターン切替です。
?time=2026-01-01+09:00の日時で表示し、/?time=2026-01-10+09:00になったら、内容が切り替わるコードになります。

<?php
date_default_timezone_set('Asia/Tokyo');
if (isset($_GET['time'])) {
  $now = new DateTime(str_replace('+', ' ', $_GET['time']));
} else {
  $now = new DateTime();
}
$limit1 = new DateTime('2026-01-01 09:00');
$limit2 = new DateTime('2026-01-10 09:00');
?>
<?php if ($now >= $limit2): ?>
<!-- 1/10以降 -->

<?php elseif ($now >= $limit1): ?>
<!-- 1/1 -->
<?php endif; ?>

limit1に、2026-01-01 09:00に設定します。
limit2に、2026-01-10 09:00に設定します。新しい日時条件を先に書くようにしてください。

3段階公開の実装方法について

3段階公開の実装方法について

キャンペーンなど、では「段階公開」がよくあります。ここでは3パターンの切替を行います。
① → ② → ③の順に段階的に切り替えていきます。

<?php
date_default_timezone_set('Asia/Tokyo'); 
if (isset($_GET['time'])) {
    $now = new DateTime(str_replace('+', ' ', $_GET['time']));
} else {
    $now = new DateTime(); 
}
$cutoff1 = new DateTime('2026-01-01 09:00');
$cutoff2 = new DateTime('2026-01-10 09:00');
?>
<?php if ($now < $cutoff1): ?>
<!-- ① 1/1 9:00 未満 -->

<?php elseif ($now < $cutoff2): ?>
<!-- ② 1/1 9:00 ~ 1/10 9:00 -->
<?php else: ?>

<!-- ③ 1/10 9:00 以降 -->
<?php endif; ?>

ifを複数記述すると、それぞれの条件が独立して評価されるため、条件によっては同じ要素が同時に表示されてしまいます。
実務ではこの挙動が原因で表示崩れが起きやすいため、elseifを使用して「1つの条件のみ実行」されるようにしています。

公開切替はミスすると大きな事故につながります。
こちらも、URLパラメータで公開前テストを必ず行なってください。

まとめ

WordPressは投稿予約だけでなく、PHP条件分岐を使うことで柔軟な公開制御が可能になります。
今回の方法を覚えると、キャンペーン更新作業を自動化できます。

POINT
  • WordPress2段階公開予約、3段階公開予約について解説しました。
  • 公開日時に合わせて表示内容を自動で切り替えたい方へ
  • 2段階公開予約、3段階公開予約を設定する際には、入れる内容を間違わないように気をつけて作業を行いましょう。
  • URLパラメータで公開前テストを行なってください。
スポンサーリンク

SHU

1991年生まれ九州の宮崎県育ち高校卒業後、愛知県で自動車関係のお仕事に5年間勤め、WEB業界に転職致しました。
趣味:サッカー観戦、ゲーム、映画、漫画基本インドアです!笑
つくる、しあわせをテーマとして主にWEBに関する様々な情報を発信しています。

オススメ記事

月別アーカイブ

Others Posts記事

NEW
ホームページ制作ご相談ください