こんにちは。
wdtの山本です。
今回は、Webサイト上のリンク先を指定した日時に合わせて自動的に切り替える仕組みを実装しました。
イベントやキャンペーンなどのWebサイトでは、「指定した日時までは現在のページを案内し、日時を過ぎたら別のページへ切り替えたい」といったケースがあります。
このような更新を手動で行う場合、指定日時に合わせてWebサイトを確認し、リンク先を変更する必要があります。
そこで今回は、日時を条件として自動的にリンク先を切り替えられるようにしました。
指定日時を基準にリンク先を変更
今回の仕組みでは、あらかじめ設定した日時と現在の日時を比較し、条件に応じてリンク先を変更します。
例えば、2026年8月1日23:59:59を切り替え日時として設定した場合、それ以前は通常の状態を維持し、指定した日時を過ぎると新しいURLへ自動的に切り替わります。
これにより、担当者が指定日時に合わせて手動でリンクを変更する必要がなくなります。
なぜPHPで処理するのか
今回の日時判定にはPHPを使用しています。
日時による切り替えはJavaScriptでも実装できますが、今回はサーバー側で処理できるPHPを使用することで、ページが表示される段階で切り替えを判定できるようにしました。
JavaScriptの場合、基本的にはユーザーのブラウザ上で処理が行われるため、ユーザー側の環境やJavaScriptの動作状況などの影響を受ける可能性があります。
一方、PHPはサーバー側で実行されるため、ページがユーザーのブラウザに表示される前に日時を判定できます。
今回のように「指定日時になったらリンク先を切り替える」という用途では、サーバー側で条件を判断するPHPが適していると考えました。
実装方法について
実装には、現在日時と切り替え日時を比較する条件分岐を使用しています。
<?php
$now = date_i18n('Y-m-d H:i:s');
$changeDate = '2026-08-01 23:59:59';
$changeUrl = '変更後のURL'; $url = ($now >= $changeDate) ? $changeUrl : '';
?>
php
<a id="link" href="
<?php echo $url ?: '変更前URL'; ?>" class="btn" target="_blank">
購入はこちらをクリック
</a>
現在日時が設定した切り替え日時を過ぎているかを判定し、条件に応じて使用するURLを変更します。
切り替え日時を変更する場合も、設定している日時を書き換えるだけなので、比較的シンプルに管理できます。
メリット
今回の仕組みには、主に以下のようなメリットがあります。
- 更新漏れを防止できる
日時をあらかじめ設定しておくことで、「切り替え作業を忘れてしまった」といった人的なミスを防ぎやすくなります。
- ブラウザに依存しにくい
PHPはサーバー側で処理されるため、JavaScriptの動作状況など、ユーザー側の環境に左右されにくいというメリットがあります。
デメリット・注意点
一方で、PHPを利用した日時切り替えにも注意点があります。
- サーバーの時刻設定に影響される
PHPが取得する現在時刻はサーバー側の設定に依存します。
そのため、サーバーのタイムゾーンが想定と異なっている場合、意図した時刻に切り替わらない可能性があります。
WordPressでは、サイトのタイムゾーン設定を考慮して日時を取得することが重要です。
- キャッシュの影響を受ける可能性がある
Webサイトでキャッシュ機能を利用している場合、PHPで判定した結果がキャッシュされ、指定日時を過ぎても古い内容が表示される可能性があります。
そのため、日時によって表示内容を変更する場合は、使用しているキャッシュ機能やサーバーのキャッシュ設定についても確認する必要があります。
- 日時の変更には管理が必要
切り替え日時をソースコードに直接記述している場合、日時を変更する際にはコードの修正が必要です。
頻繁に日時を変更する運用の場合は、管理画面から日時を設定できるようにするなど、別の仕組みを検討する必要があります。
今回の実装を通して
今回の実装では、PHPによるシンプルな日時判定を利用することで、指定した日時に合わせたリンク先の切り替えを自動化しました。
手動での更新作業を減らせる一方で、サーバーの時刻設定やキャッシュなど、Webサイト特有の環境にも注意する必要があります。
今後も、運用する側の負担を減らしながら、ユーザーにとって分かりやすく使いやすいWebサイトを実現できるよう、状況に応じた適切な技術を選択していきたいと思います。


