• HOME > 
  • WordPress > 
  • ワードプレスで今日の日付を表示する方法【初心者にもわかりやす...

ワードプレスで今日の日付を表示する方法【初心者にもわかりやすく解説】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

このページでは、ワードプレスで今日の日付や現在の時刻を取得して表示する方法について説明します。

WEBサイトを制作していると、日時を取得したり表示させたり、日付によって表示を切り替えるなど行いたい場面はいくつも存在します。

日付の取得と聞くと、PHPのdate関数による取得が真っ先に思い浮かぶと思います。

確かにワードプレスのphpファイル上でもdate関数は使用できるのですが、時刻がずれてしまうという問題が発生します。

date関数についてのおさらい

まずはじめにPHPのdate関数がどのようなものかを簡単におさらいしておきましょう。

PHPはdate関数を用いることで現在の日時を取得することができるようになっています。

フォーマットを行うことで現在の年月日だけであったり時刻だけ取得できたり、任意の日時を取得することも可能です。

日時と連動させたシステムを構築するプログラミングには欠かすことのできない関数です。

PHP

<?php
    echo date('Y/m/d H:i:s');
?>

プレビュー

date関数
リンク先のサムネイル
PHPのdate関数で日時を取得する方法

PHPのdate関数は当日の日付を年月日で取得したり、現在時刻を取得することが出来る関数です。date関数の使い方は簡単で、「date('フォーマット形式')」という形で記述します。フォーマットには「Y/m/d」や「Y年m月d日」などがあり、年だけ、月だけ、日にちだけ取得することも可能で...

PHPファイル内においてもdate関数での日時がズレる場合はあります。

その場合の対処方法は下記のページに記載してありますが、ワードプレスの場合は少し状況が異なります。

リンク先のサムネイル
PHPのタイムゾーンの設定方法

タイムゾーンとはその名のとおり、時間によって世界の地域を区分けしたものです。このタイムゾーンの設定によってWEBサイトは世界のどの地域の時刻を使用するかを決定しています。WEBサイトで日本の時刻を扱うためにはタイムゾーンを正しく設定しておく必要があり、反対に日本であっても他の地域のタイムゾーンを設定することも可能です。...

ワードプレスでdate関数を使うと日時の取得がズレる?

ワードプレスで制作しているサイトでも日時を取得したり表示させたい場面は存在します。

ワードプレスのテーマはPHPを使用して構築されていますので、もちろんdate関数を用いた日時の取得は可能です。

ワードプレス内でdate関数を使う

しかし、日時を取得して表示させてみると実際の時刻とは大きくかけ離れてしまっています。

日時を取得して表示させてみる

ワードプレス内でphpのdate関数を使用して日時を取得しようとすると9時間ずれてしまうのです。

サーバー側の設定は無関係

サーバー側の「php.ini」ファイル内のタイムゾーンが正しく設定されていても取得した日時はずれてしまいます。

一般設定のタイムゾーンは無関係

ワードプレスの一般設定にあるタイムゾーンが「東京」に設定されているにもかかわらず、date関数を使うと9時間ずれた時間が取得されてしまいます。

一般設定にあるタイムゾーン

では、果たして何がいけないのでしょうか?

ワードプレスの仕様が原因

設定が足りなかったり、date関数の使い方を間違えているわけではなく、実はこれはワードプレスの仕様による問題なのです。

ワードプレスではサーバーのタイムゾーン設定やワードプレスの一般設定にあるタイムゾーンの設定とは無関係に、date関数を使うとはタイムゾーンはUTC(世界標準時)の日時が取得されるように作られているのです。

ではワードプレスで正しい日時を取得したい時はどうすればよいのでしょうか?

ワードプレスではdate_i18n関数を使う

ワードプレスには独自の関数がいくつも用意されており、その中に「date_i18n」関数というものが存在します。

date_i18n関数は一般設定のタイムゾーンに基づいた日時を取得するので、正しい日本時間で日時を取得することが可能になります。

date_i18n関数の使い方

使い方は簡単でPHPのdate関数とまったく同じです。dateの部分をdate_i18nに変えるだけです。

※テーマファイルの編集はサイトに予期せぬエラーを引き起こす可能性があります。必ずバックアップを取って自己責任で行って下さい。

PHP

<?php
    echo date_i18n('Y年m月d日 H:i:s');//年月日を表示
    $week = array('日','月','火','水','木','金','土');//曜日を用意
    echo '(' . $week[date_i18n('w')]  . ')';//曜日を表示
?>

上記のコードをワードプレスのテーマエディターで、使用しているテーマのheader.phpに追記する。

headerに追記

プレビュー

サイト表示確認
リンク先のサムネイル
PHPで曜日を表示する方法

PHPを使って曜日を取得する方法について説明します。日本語の曜日を表示させるとなると少し工夫が必要になります。日~土までの各曜日の文字列を格納した配列を作り、date関数のフォーマット「w」で今日の曜日番号を取得し、配列内のその番目の文字列を取り出せば日本語の曜日を表示することができます...

ワードプレスの一般設定のタイムゾーンで日時を取得

ワードプレスの一般設定にあるタイムゾーンで選択したものを取得する仕組みになっているので、もしdate_i18n関数を使用して取得した日時がずれている場合は、ここを確認して「東京」に正しく変更してください。

ワードプレスのタイムゾーン設定

date_default_timezone_setは使わない方が良いので注意

PHPのdate関数の場合は、「date_default_timezone_set」を使用してタイムゾーンを変更する方法がありますが、ワードプレスではこの方法はお勧めしません。

なぜならばワードプレスのシステム内ではUTCを取得することを基本として設計されているため、date_default_timezone_setを使ってタイムゾーンを強制的に変更してしまうと、予期せぬ不具合を引き起こす恐れがあるからです。

なので日時を取得したい場合は、ワードプレス側が用意してくれている「date_i18n」関数を用いるようにしましょう。

固定ページや投稿ページの本文中に表示させたい場合

ヘッダーやフッターなどPHPファイルで構成されている部分以外にも、固定ページの本文中などで日時を表示させたい場面は存在すると思います。

しかし残念ながらワードプレスの固定ページや投稿ページのエディターではPHPのコードを記述しても動作しません。

こちらもワードプレスの仕様のためどうすることもできませんが、ショートコードを作成して埋め込むという方法を使えば本文中でも日時を取得して表示することが可能です。

テーマのfunctions.phpに以下のコードを追記

下記のコードを使用しているテーマ(子テーマ)のfunctions.phpに追記してください。

※テーマファイルの編集はサイトに予期せぬエラーを引き起こす可能性があります。必ずバックアップを取って自己責任で行って下さい。

functions.php

function sc_get_today(){
    $date = date_i18n('Y年m月d日');
    $week = array('日','月','火','水','木','金','土');
    return $date . '(' . $week[date_i18n('w')]  . ')';
}
add_shortcode('sc_today','sc_get_today');

固定ページや投稿ページの本文にショートコードを貼り付ける

あとは本文中の任意の箇所に [ ] カッコを付けてショートコードを記述すればOKです。

ショートコードを貼り付け

プレビュー

サイト表示確認
リンク先のサムネイル
ワードプレスでショートコードを使う方法【投稿・固定ページでPHPを使う】

ワードプレスでは、あらかじめ使いたいPHPの処理をショートコードという形で設定しておくことで、投稿ページや固定ページでもPHPによる処理を呼び出すことができます。PHPでしか行えない処理やサイト内で何度も使いまわしたいものはショートコード化しておくと便利です。...

まとめ

日時を取得することができればサイトの表現の幅や利用できる機能を増やすことができます。関数の使い方やタイムゾーンの正しい設定を理解してサイト制作に活用して下さい。

広告
広告

関連する記事

サムネイル

WPのカテゴリー内の項目(ターム)の表示順を変更【プラグイン……

2024年12月03日
WordPressにおいてカテゴリーの項目(ターム)を一覧表示させたときの表示順をプラグインを使わずに変更する方法を学んだので備忘録として残しておきます。 ター […]
サムネイル

WPのカスタム投稿一覧表への列(カラム)の追加と並び替え【プ……

2024年12月03日
WPのカスタム投稿タイプを作ってサイトを構築していく中で、管理画面上での一覧ページに任意の列(カラム)を追加したり、表示順を並び替える方法を学んだので備忘録とし […]
サムネイル

WPのカスタム投稿タイプでカテゴリーやタグを設定できるように……

2024年12月03日
WordPressのカスタムタクソノミーを使ってカスタム投稿タイプにカテゴリーを設定する方法について学んだので備忘録としてまとめます。 カスタムタクソノミーとは […]
サムネイル

WPでカスタム投稿タイプを追加してページを分類する方法

2024年12月03日
WordPressのカスタム投稿機能を使ってぺージを分類する方法について学んだので備忘録としてまとめます。 カスタム投稿タイプとは? WordPressでは、標 […]
サムネイル

WPで下書きページを第三者と共有できるプラグイン【Publi……

2024年11月07日
WordPressにおける下書き状態のページは非ログイン状態では閲覧することができないので、新規追加予定ページをクライアントにチェックしてもらう時の良い方法を探 […]
サムネイル

WordPressの予約語とは?【カスタム投稿タイプ・カスタ……

2024年11月07日
WordPressのカスタム投稿タイプやカスタムタクソノミーを扱うにあたり、予約語について学んだので備忘録としてまとめます。 予約語とは? WordPressで […]
サムネイル

WPから送信したメールがGmailに届かない時の対応【WP ……

2024年08月01日
WordPressのCF7で作ったメールフォームから送信されたメールがGmailだと受信できなくなっていることに気づきました。WP側の送信方法を見直す必要があり、WP Mail SMTPというプラグインを導入することで解決できたので、そのとき学んだ内容を備忘録として残します。