最終更新日時を表示

■目的:
記事の投稿日ではなく、最終更新日時を表示する。

■現状:
通常の記事のループで使われる投稿日時のタグは、the_date() またはthe_time()。the_dateは、同じ日付の記事が複数ある場合は、最初の記事にしか日付が表示されない。その変わりに the_time('Y/m/d')とすれば各記事ごとに日時を表示できる。

では投稿日時ではなく、最終更新日時を表示したい時は?

■方法:
echo $post->post_modified

とすると

2007-01-28 16:54:38

このままでも悪くないけど長いので、これを加工して

2007/01/28

とするには、

<?php
echo str_replace("-", "/" , substr($post->post_modified, 0, 10));
?>

■解説:
PHPの「substr」関数で日付部分…先頭から10文字分を抜き出す。
1つ目の引数が対象となるデータ
2つ目の引数が開始位置(1文字目は 0)
3つ目の引数が抜き出す文字数



結果)2007-01-28

PHPの「str_replace」関数で年月日の区切りを「-」から「/」に文字変換する。
1つ目の引数が変換前の文字列
2つ目の引数が変換後の文字列
3つ目の引数が対象となるデータ



結果)2007/01/28


以上

【追記】
ver2.1以降では「the_modified_date」「the_modified_time」というテンプレートタグが使えるようですね。知りませんでした(^^;;
上記内容はver2.0.x用ということで。。

【追記2】
ループ外に、サイトの最終更新日時を表示。
<?php echo get_lastpostmodified(); ?>

すべての記事の中で更新日時(post->post_modified_gmt)が最新の値を返してくれます。必要に応じて前出の加工を。ちなみにget_lastpostdate()もあります。
※ME2.0.9で確認


↑ PageTop

この記事へのコメント
コメントを書く
name

mail

url

comment

認証コード: *


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。