[WordPress]時間で条件分岐、タイムゾーン設定がうまくいかないときの記述
UPDATE 2024.10.19予約投稿、公開が便利なWordPress。
WordPressのテーマ内でも、時間が経過した際に表示したい内容を
表示・非表示したいタイミングがあるかと思います。
その際は、基本的な記述として下記を記載されると思います。
<?php if (date('Y-m-d H:i:s') > '2024-01-01 00:00:00') :?>
指定した時間を過ぎたら表示したい文章 or 処理
<?php else:?>
指定した時間までに表示したい文章 or 処理
<?php endif;?>
が、WordPressの設定でタイムゾーン(東京、UTC+9日本標準時間など)を
指定しているにもかかわらず、反映されないことはありませんか?
wp-settings.phpなどの見直しや、functionファイルの追記なども
解決方法としてあるのですが、PHPのプレーンな記述であるtimezoneを指定するのが
一番手っ取り早いと感じました。
以下の一文を加えるだけです。
<?php date_default_timezone_set('Asia/Tokyo'); ?>
<?php if (date('Y-m-d H:i:s') > '2024-01-01 00:00:00') :?>
指定した時間を過ぎたら表示したい文章 or 処理
<?php else:?>
指定した時間までに表示したい文章 or 処理
<?php endif;?>
こうなるとWordPress云々は関係ありませんね。
タイムゾーンがずれる要因は、利用するサーバーなどにもあるのかも?
当然ですが、違うタイムゾーンの情報分岐を使いたい、という奇特なテーマの
場合には解決策にはなりませんので、あくまで東京、日本標準時をベースとしたい際の解決策でした。