WordPressの記事を作成・更新した日時を相対表記する方法を共有します。といってもWordPressには便利な機能が用意されてるので、たった1つの関数を使うだけで実現できてしまいますが。
ゆめぴょんです。こんちはっ(^^)/
ツイッターなどのSNS(ソーシャルネットワーク)で日時の相対表記(「10分前に投稿」など))を用いる理由については昨日書きました。参考になれば幸いです。
WordPressの記事作成日時を相対表記する方法
まず結論を言うと「human_time_diff()」っていう便利な関数を使うだけです。
具体的には、WordPress管理画面の「外観」→「テーマ編集」を選びます。該当ファイル内の「the_time()」や「get_post_time()」などの関数を検索して作成日時を表示してる部分を見つけます。
ホーム(トップページ)なら「index.php」、個別記事なら「single.php」、カテゴリーページなら「category.php」、タグページなら「tag.php」があやしいです。又は「content.php」にまとめて記述してる場合も多そうです。
記事作成日時を記述してる部分を見つけたら例えば「the_time()」なら、次のように書き換えるだけです。
[php]
echo human_time_diff( get_post_time(‘U’,true) ) . ‘前に作成’
[/php]
もしかして日本国内のサーバーを利用してるなら「’U’,true」は不要かもしれません。私は海外サーバーを利用してるため、海外の情報をもとに記述しました。
ちなみに「get_post_time」は記事作成日時です。コメント作成日時は「get_comment_time」、記事更新日時は「get_the_modified_time」を利用します。
以上、とても簡単に解決しましたので、次の展開も考えてみました。
今後の課題。より日常会話に近づけるために
理想としては次のような表現の方が自然な気がします。いつか対応したいけど、既に誰かが作ったものやこれ読んで作られた人がいたらぜひ教えてくださいね!
- 「1日前」ではなく「きのう」
- 「2日前」ではなく「おととい」
- 「7日前」ではなく「1週間前」や「先週水曜」
- 「45日前」ではなく「先月10日」
- 「2〜11ヶ月前」はそのままでいいかな
- 「6ヶ月前」は「半年前」
- 7月(July)以降には「8ヶ月前」ではなく「昨年11月」
- 「一昨年前」からは「2011.05.02」の方が良いかな
追記:他のブロガーさんが作成してくれました!感謝です♪
ゆめぴょんでした。ちゃおっ!