前回の記事で、好きなフォーマットで投稿日を表示できるようになりました。
サイト(ブログ)を運営していると、過去に投稿した記事をあとから書き直す機会がよくあります。閲覧者からすると投稿日だけではなく更新日もわかれば、その記事に書かれている情報の信頼性を判断しやすくなっていいですよね。
今回は更新日の表示方法について書きます。
the_modified_date で更新日を出力
更新日の表示方法は、投稿日の時とあまり変わりません。
ちょっと関数の名前が違うだけで使い方はほぼ同じです。
投稿日・時刻 | 更新日・時刻 | |
---|---|---|
日付 | the_date(); get_the_date(); |
the_modified_date(); get_the_modified_date(); |
時刻 | the_time(); get_the_time(); |
the_modified_time(); get_the_modified_time(); |
試しに表示してみました。
<article class="contents-list">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_time('(投稿日時: Y年n月j日 H:i)'); ?>
<?php the_modified_time('(更新日時: Y年n月j日 H:i)'); ?><br/>
<?php the_content(); ?>
</article>
サンプルの場合、投稿後に更新した「サンプル1」だけ投稿日とは違う日時が表示されましたね。更新日および時刻を取得しようとした時、その記事がまだ更新されたことがない場合は、投稿した日時が返ってくる仕様なのです。
つまりまだ更新されていない記事は、get_the_date で出力されるテキストと get_the_modified_date で出力されるテキストが一致します。
この仕様を利用して「更新されたことがある記事か?」をチェックすることができます。
//投稿日と更新日が一致するか調べる
if ( get_the_date() != get_the_modified_date() ) {
//不一致: 別の日に更新されている
echo '更新されています。';
}else{
//一致: 同じ日に更新されたか、そもそも更新していない
echo '更新されていません。';
}
上の例文では日付しかチェックしていないので、更新したのが投稿日と同じ日の場合は更新されていない扱いになります。
(ユーザー設定がデフォルトの場合、dateでは日付しか出力されないため。設定次第で結果が異なります)
投稿日から日を跨いでいなくても「更新した」と扱いたい場合は、時刻も取得するようフォーマットを指定するか、get_the_time と get_the_modified_time の違いもチェックすると良いでしょう。
//投稿日時と更新日時が一致するか調べる
//フォーマットを指定する例
if ( get_the_date('Y-n-j H:i:s') != get_the_modified_date('Y-n-j H:i:s') ) {
//不一致: 別の日時に更新されている
echo '更新されています。';
}else{
//一致: 更新されていない
echo '更新されていません。';
}
//get_the_timeを併用する例
if ( get_the_date() != get_the_modified_date() || get_the_time() != get_the_modified_time() ) {
//不一致: 別の日、または別の時間に更新されている
echo '更新されています。';
}else{
//一致: 更新されていない
echo '更新されていません。';
}
日時のフォーマットに使用できる英字については前回の記事にまとめたので、そちらを確認してください。
更新されている記事だけ何か別のものを表示したくなった時などに、試してみてくださいね。
次回はアイキャッチ画像を表示します。
まとめ
get_the_modified_date や get_the_modified_time を使えば記事の更新日時を出力することができます。
記事がまだ更新されていない場合は、投稿日が出力されます。
この記事へのコメントはありません。