SHU BLOG

BLOG NEWS

TITLE

【WordPress】指定日時を過ぎたらページを自動で404にする方法

SHU[シュウ]

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

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

シュウ
シュウ
今回は【WordPress】指定日時を過ぎたらページを自動で404にする方法についての解説になります!

こんな方に読んでほしい

  • 期間限定キャンペーンページを作るWeb担当者へ
  • 時間になったら自動非公開(404)したい人へ
  • 手動でページを消す運用をやめたいサイト運営者へ

公開期限付きページを作る方法について

公開期限付きページを作る方法について

PHPを使って「指定日時を過ぎたらページを自動的に404へリダイレクトする方法」を解説します。キャンペーンページや期間限定コンテンツの公開期限管理を自動化したい方に向けて、実際のコード例と仕組みをわかりやすく紹介します。
まずは実際によくある利用シーンを見てみましょう。

公開日後にページを非表示にしたい場面
  • 期間限定キャンペーンページ
    キャンペーン終了後もページが残ると、ユーザーが古い情報を見てしまう可能性があります。
    そのため、終了日時を過ぎたら自動的にページを非表示にします。
  • 一時的に公開する特設ページ
    短期間だけ公開するコンテンツです。
    終了後は自動的に非表示になるため、手動で削除する手間がなくなります。
メリット
  • 手動作業が不要
    指定日時を過ぎると自動でページが非表示になるため、ページ削除リンク削除非公開設定、などを手動で行う必要がありません。
  • 古い情報の閲覧を防げる
    キャンペーン終了後もページが見えると、「終了したクーポン」、「販売終了商品」、「古いイベント」などをユーザーが見てしまいます。
    この方法なら期限切れページを自動でブロックできます。
  • SEO的にも安全
    404ページへリダイレクトすることで、「検索エンジンに「ページが終了した」ことを伝えられる」、「古い情報がインデックスに残りにくい」というメリットがあります。
  • テストが簡単
    ?time=2025-12-16+10:00のようにアクセスすれば、未来の日時を仮想的にテストできます。

コードの仕組みについて

コードの仕組みについて

一見シンプルですが、公開終了日に必要な要素がすべて含まれています。
全体のコードは以下になります。!doctype htmlの下に記述します。
また、個別で解説しております。

<!doctype html>
<?php
date_default_timezone_set('Asia/Tokyo');
$now = isset($_GET['time']) 
    ? new DateTime(str_replace('+', ' ', $_GET['time']))
    : new DateTime();
// 取り消し日時:2026-01-01 09:00
$limit = new DateTime('2026-01-01 09:00');
if ($now >= $limit) {
    header('Location: /404.php', true, 302);
    exit();
}
?>
<html>
<head>
1.日本の時間に設定
日本時間で判定するため必須です。
date_default_timezone_set('Asia/Tokyo');
2.現在の時間を取得
ここでは現在の時間を取得しています。
$now = isset($_GET['time']) 
    ? new DateTime(str_replace('+', ' ', $_GET['time']))
    : new DateTime();
3.ページの終了日時を設定
ここを書き換えるだけで公開終了日を変更可能です。
$limit = new DateTime('2026-01-01 09:00');
4.404ページへリダイレクト
ここを書き換えるだけで公開終了日を変更可能です。
header('Location: /404.php', true, 302);
exit();
//終了時間を過ぎた場合、
/404.php
//へリダイレクトします。

302 = 一時的なリダイレクトです。
5.exitで処理終了
ここでPHPの処理を完全に停止します
exit();

URLパラメータで公開前テストする方法

上記で解説しましたが、公開終了日を待たずに表示確認をしたい場合は、URLパラメータを利用すると便利です。
変更前と変更後の確認をする為に必ず行いましょう。
/?time=2026-01-01+09:00のコードを必ず指定してください。

<!-- 変更前 -->
https://example.com/
<!-- 変更後 -->
https://example.com/?time=2026-01-01+09:00

まとめ

今回はこれで以上です。
今回紹介した方法を使うことで、
PHPでページの公開期限を簡単に管理することができます。個人的に「手動でページを削除する手間がなくなる」のが、とても便利だとかんじています。

POINT
  • WordPress公開終了日について解説しました。
  • 公開日時に合わせて表示内容を自動で切り替えたい方へ
  • DateTime('2026-01-01 09:00')の中を変更してください。
  • URLパラメータで公開前テストを行なってください。
スポンサーリンク

SHU

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

オススメ記事

月別アーカイブ

Others Posts記事

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