WordPressの日付の月名が日本語になっちゃって備忘録

WordPress WordPress

先日のWordPressの作業の備忘録。

日付を取得して表示させる作業をしたところ、思うような表示にならなくて……。いろいろ調べたところ原因がわかったので記録しておきます。

ちなみに、思うようにならない、といえば、私の場合、娘(10)が自由奔放すぎて、父の言うことを既読スルーすることが増えてきました。はぁ~親離れですね。

ということで、WEB制作する人以外には面白くも役にも立ちませんのであしからず~(^-^;

php date

php date取得で「F j, Y」と記述して、

March 12,2025

と表示させたかったのですが、あれ?なぜか

3月 12, 2025

と表示されました。「F」は英語の月名のはずなのに、日本語で“3月”って……。

WordPressが原因!?

あれこれ調べたところ、どうやらWordPressだとそうなるらしいです。

WordPress は date_i18n() を自動で使う場面が多いようで、翻訳された月名を返すのだそう。

サイトの言語が「日本語」なら、Fは

  • January → 1月
  • February → 2月
  • March → 3月

…という風に翻訳されてしまいます(なんて、やさしい……!)。

たとえば、テンプレートで以下のように記述します。

<?php echo get_the_modified_time('F j, Y'); ?>

get_the_modified_time() は内部で date_i18n() を使っています。つまり「F」を渡すと、英語の月名で返ってこず、サイト言語(日本語)の月名「3月」となるため、以下のように翻訳されます:

F j, Y → 3月 12, 2025

たのんでもいないのに~!

解決方法

翻訳しない「生」のUNIXタイムが取れる純粋な date() を使いましょう。

表にまとめておきます。同じ事で悩んでいる人がいたら、ぜひやってみてください。この記事が少しでも参考になれば幸いです!

使う関数月名理由
get_the_modified_time('F j, Y')× 日本語(3月)date_i18n により翻訳される
date('F j, Y', get_post_modified_time('U', false))○ 英語(March)純粋なPHP date() で翻訳なし

今月のキャラクター

弊工房が運営している、キャラクター直売所『キャラ市楽座』。
今月のキャラクターはこれ!

エクスクラ
ぽってりお腹のウサギの『エクスクラ』です。

もたもた歩きながら新しいワクワクを探している。小さなことにも大きく反応して耳の中のビックリマークがピンと立つ。大きなおなかとおっとりした性格にみんなクスッしてしまう愛され者。

コメント

タイトルとURLをコピーしました