WordPress 時間の表示が9時間ずれる場合の対処方法

WordPress で時間の表示が9時間ずれる場合の対処方法を紹介します。
原因によっては対処方法がことなるため、原因になる箇所を順を追って解説します。

  1. タイムゾーンの設定を確認
  2. テーマファイルを確認
  3. テンプレートタグを変えてみる
  4. wp-settings.php の値を調整
  5. テンプレートタグ date_i18n を使う

タイムゾーンの設定を確認

東京を基準とした場合、まずは「管理画面」>「設定」にある項目「タイムゾーン」の値が「東京」になっているかを確認します。
例えば、タイムゾーンが「UTC(協定世界時)」の場合は、投稿の表示時間が9時間ずれる場合があります。

テーマファイルを確認

タイムゾーンは東京なのにやっぱり時間がずれる、そんな時はテーマファイル内に date_default_timezone_set() の記述がないかを確認しましょう。
日時の取得の前や function.php などでこの記述の値が変更されていると、その後に表示する日時がずれる場合があります。

テンプレートタグを変えてみる

色々みたけどやっぱり表示が変。そんな時はテンプレートタグを変えてみましょう。
例えば get_the_date() を使用していたら、ひとまず get_the_time() に変更することで解決する場合があります。

wp-settings.php の値を調整

如何にもこうにも修正できない場合、WordPress のトップディレクトリにある、コアファイル wp-settings.php の値 date_default_timezone_set( ‘UTC’ ); を修正することで対応することもできますが、できればここはいじりたくない。

テンプレートタグ date_i18n を使う

投稿とは別に、フッターのコピーライトの年表記を動的に出力したい場合は、タイムスタンプに基づいて、ローカライズされた書式で日付を取得できる date_i18n を使用します。
例えば、コピーライトに現在の年を表示したい場合は、次のコードをテンプレートに追加します。

<?php echo date_i18n('Y'); ?>

詳しくはWordPress でコピーライトの西暦を自動更新する方法で解説しています。

まとめ

WordPress で時間の表示が9時間ずれる場合の対処方法を紹介しました。