ホームページのTOPへ

[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云々は関係ありませんね。
タイムゾーンがずれる要因は、利用するサーバーなどにもあるのかも?

当然ですが、違うタイムゾーンの情報分岐を使いたい、という奇特なテーマの
場合には解決策にはなりませんので、あくまで東京、日本標準時をベースとしたい際の解決策でした。

松宮

Director / Designer松宮 悠人

profile

島根県出身。近畿大学卒。学生時代にデザイン・レイアウトやデジタル技術の基礎知識を得る。その後営業職を経て各種広報の制作に携わるようになり、今日までのデザイン・ディレクションの対応業種と制作数は多岐にわたる。
趣味:映画観賞・ボクシング 好きなもの:B級映画・叉焼・ガンダム

  • 松宮